1. memcache概念
首先我们必须要区别三个概念: Memcached, memcache 和memcached.
1. 其中Memcached指的是Memcached服务器,就是独立运行的Memcached后台服务器,就像mysqld一样,它是用来存储数据的键值对”数据库”.
2. 而memcached和memcache都是Memcached的客户端,可以通过他们来访问连接Memcached服务器.他们都是php的插件.对于两个的区别,是一个老话题了,可以参考其他文章的说法.个人感觉memcached更好些,毕竟功能多,而且是基于libmemcached的扩展.
2. Memcached服务器安装和测试
如果是fedora的话,内置源就有memcached,可以直接用yum安装
yum -y install memcached.x86_64
安装好后,开启后台进程.
memcached -d -m 10 -u user -l 127.0.0.1 -p 12000 -c 256 -P /tmp/memcached.pid
其中-d表示开启后台服务进程,-m表示最大使用10m内存,-u表示当前用户,-l表示ip地址,-p表示端口号,-c表示最大的并发连接数,-P表示pid文件的位置.其他参数可以直接man memcached查询.
现在可以用telnet测试下memcached的开启情况.
telnet 127.0.0.1 12000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set a 0 0 4
1234
STORED
get a
VALUE a 0 4
1234
END
^C
quit
上面消息表示Memcached服务器安装成功.
3. memcache的安装和测试
wget -c http://pecl.php.net/get/memcache-3.0.8.tgz
tar zxvf memcache-3.0.8.tgz
phpize && ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
make && make install
这样下面会出现一行Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
这样so文件就生成了,然后在php.ini文件中导入这个模块就行.
extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
extension=memcache.so
然后重启php-fpm加载php.ini,查看phpinfo如果看到memcached则表示模块安装成功.有时可能出现php.ini未加载的情况.可以强制php-fpm加载该ini文件.
php-fpm -c /usr/local/php/lib/php.ini
在php文件中测试memcached.
<?php
$memcache = memcache_connect('localhost', 12000);
if ($memcache) {
$memcache->set("key1", "String");
$memcache->set("key2", 123);
$object = new StdClass;
$object->attribute = 'test';
$memcache->set('key3', $object);
var_dump($memcache->get('key1'));
var_dump($memcache->get('key2'));
var_dump($memcache->get('key3'));
} else {
echo "Connection to memcached failed";
}
?>
浏览器访问即可知道是否成功访问.
在memcache中有一个叫memcache.php的文件,可以查看memcache服务器的运行状况.
修改memcache.php文件.
#$MEMCACHE_SERVERS[] = 'mymemcache-server1:11211'; // add more as an array
#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
$MEMCACHE_SERVERS[] = 'localhost:12000';
浏览器打开就可以看到memcached服务器的情况.
4. memcached的安装和测试
安装和memcache差不多,不过要先装libmemcached.
yum -y install libmemcached.x86_64
然后就按按照memcache的安装和测试方法就行.