按照Dena的提示,可以把Viewer的信息保持24小时。之后必须删除掉用户信息。本来考虑就用Smarty的Caching,后来发现人家只是支持页面的Cache。对于那种需要每次检索一大堆数据,又对实时性要求不高的页面是很合适的。之前的网站也有用过。这次我们不需要这种Cache,需要的是Memcached那种Key-Object的Map存储。而且如果把Memcached发到一个网络上的公用机器上,就可以很容易实现多台Web Server共享同一个Cache信息。
说干就干,开始安装Memocached。虽然上个月,安装过Windows版本的,但是CentOS上还是碰到一些小问题。
- 安装Libevent和memcached
# yum install libevent-devel
# cd /usr/local/src
# wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
# tar xvfz memcached-1.4.5.tar.gz
# cd memcached-1.4.5
# ./configure
# make
# make install - 启动memcached
# memcached -d -u www -m 2048
意思是以www用户启动缓存为2G的memcached
启动部分参数说明选项说明
-p 监听的TCP端口 (缺省: 11211)
-d 以守护进程方式运行Memcached
-u 运行Memcached的账户,非root用户
-m 最大的内存使用, 单位是MB,缺省是 64 MB
-c 软连接数量, 缺省是 1024
-v 输出警告和错误信息
-vv 打印客户端的请求和返回信息
-h 打印帮助信息
-i 打印memcached和libevent的版权信息 - 安装PHP的memcached扩展
# pecl install memcached
并按照提示修改PHP.ini,添加extension=memcache.so。记得重启Apache
- 测试程序
和上次Windows安装一样
[sourcecode language=’php’]
connect(“localhost”,11211);echo “Server’s version: ” . $memcache->getVersion() . “
\n”;$tmp_object = new stdClass;
$tmp_object->str_attr = “test”;
$tmp_object->int_attr = 123;$memcache->set(“key”,$tmp_object,false,10);
echo “Store data in the cache (data will expire in 10 seconds)
\n”;echo “Data from the cache:
\n”;
var_dump($memcache->get(“key”));
?>
[/sourcecode]