本人在php5.3.8版试验,很easy,不需要额外代码,直接用下面php.ini的配置就行:
session.save_handler = memcache
#有多个时直接用”,”分隔即可,11211为memcached服务端守护进程端口,根据环境自行修改
session.save_path = ‘tcp://127.0.0.1:11211′
当然也可以直接在程序里面设置:
ini_set(‘session.save_handler’,'memcache’);
ini_set(‘session.save_path’,'tcp://127.0.0.1:11211′);
如果你是apache服务器话也可以在 .htaccess :
php_value session.save_handler “memcache”
php_value session.save_path “tcp://192.168.1.105:11211″
注意:因为 php的memcache扩展有两种,一种是php_memcache,一种是php_memcached,
如果你用的是php_memcached,save_handler的配置得变成如下形式:
php.ini:session.save_handler = memcached
或
程序中:ini_set(‘session.save_handler’,'memcached’);
使用过程中发现,用memcache存储session以后,nginx下如果memcachd没有启动的话,它会给报502的Error
友情提示:
session 数据都保存在 memory 中,不经过磁盘,数据库等,速度快。
可以多台机器共用一个/组memcached服务器,达到多台机器共享session信息,方便多机集群的session问题处理。至于session在集群时会遇到的问题请到下面的链接详看:
粘滞会话(Sticky Sessions)
http://www.xwuxin.com/?p=1958
memcached不支持持久化(这方面你可以考虑redis),但对于session 数据来说不算大问题。
由于memcached的内存管理机制,当session存储的数据超过1MB的时候有数据丢失问题。