在现代网络开发中,缓存系统是非常重要的,因为缓存系统能够加快系统响应速度,减轻服务器压力,php memcached就是一种非常常用的缓存系统,下面我们来介绍一下php memcached的配置。
首先,我们需要在服务器中安装memcached扩展,在CentOS系统中,可以使用以下命令安装:
yum install memcached
yum install php-pecl-memcached
安装完毕后,我们需要在php.ini文件中引入memcached扩展,并修改相应配置。
extension=memcached.so
然后,我们需要在代码中使用php memcached扩展,下面是一个简单的例子:
$mem = new Memcached;
$mem->addServer("127.0.0.1", 11211);
$result = $mem->get("key");
if ($result) {
echo $result;
} else {
echo "No matching key found.";
}
上面的代码中,我们创建了一个memcached对象并指定了memcached服务器的ip和端口,然后我们使用get方法获取缓存中的数据。
接下来,我们需要对memcached进行配置,具体的配置包括以下几个方面:
1. 内存分配
我们可以通过以下代码配置memcached使用的内存大小:
$mem = new Memcached;
$mem->setOption(Memcached::OPT_MEMORY_LIMIT, 256);
上面的代码中,我们将内存大小设置为256MB。
2. 连接池
我们可以通过以下代码配置memcached使用的连接池大小:
$mem = new Memcached;
$mem->setOption(Memcached::OPT_CONNECT_TIMEOUT, 1000);
$mem->setOption(Memcached::OPT_POLL_TIMEOUT, 1000);
$mem->setOption(Memcached::OPT_RECV_TIMEOUT, 1000);
$mem->setOption(Memcached::OPT_SEND_TIMEOUT, 1000);
$mem->setOption(Memcached::OPT_TCP_NODELAY, true);
$mem->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 5);
$mem->setOption(Memcached::OPT_RETRY_TIMEOUT, 2);
$mem->setOption(Memcached::OPT_HASH, Memcached::HASH_DEFAULT);
$mem->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$mem->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
上面的代码中,我们设置了连接超时时间、读取超时时间、写入超时时间、失败重试次数等参数。
3. 触发器
我们可以使用memcached的触发器功能,当缓存被修改时自动触发某些操作,以下是一个简单的例子:
$mem = new Memcached;
$mem->setOption(Memcached::OPT_PREFIX_KEY, 'mem_');
$mem->setOption(Memcached::OPT_CACHE_LOOKUPS, true);
$mem->setOption(Memcached::OPT_CONNECT_TIMEOUT, 1000);
$mem->setOption(Memcached::OPT_SEND_TIMEOUT, 1000);
$mem->setOption(Memcached::OPT_RECV_TIMEOUT, 1000);
$mem->setOption(Memcached::OPT_POLL_TIMEOUT, 1000);
$mem->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 5);
$mem->setOption(Memcached::OPT_RETRY_TIMEOUT, 2);
$mem->setOption(Memcached::OPT_TCP_NODELAY, true);
$mem->setOption(Memcached::OPT_HASH, Memcached::HASH_MD5);
$key ="mem_test_key";
$value = 0;
$mem->set($key, $value, 0);
$mem->setOption(Memcached::OPT_COMPRESSION, false);
$mem->replace($key, ++$value, 0);
$mem->setOption(Memcached::OPT_COMPRESSION, true);
$mem->replace($key, ++$value, 0);
上面的代码中,我们使用set方法设置缓存,并使用replace方法修改缓存,同时在修改缓存时设置了触发器。
通过以上配置,我们可以设置memcached的内存大小、连接池大小、触发器等,使用memcached可以极大地提高系统响应速度和减轻服务器压力,是非常值得使用的工具。