php使用memcache共享存储session(二)

post by rocdk890 / 2013-7-8 11:01 Monday linux技术
  在上一篇php使用memcache共享存储session(一)文章中,搭建好了memcache服务端和memcache客户端了,下面来讲下怎么使用memcache共享存储session.
  系统:centos 5.9
  环境:客户端a和b
         服务端c
1.先启动memcache服务端
service memcached start
/usr/local/memcache/bin/memcached -d -p 11211 -u nobody -m 1024 -c 1024 -P /var/run/memcached/memcached.pid

memcache启动参数:
-d选项是启动一个守护进程
-m是分配给Memcache使用的内存数量,单位是MB,我这里是1024MB
-u是运行Memcache的用户,我这里是nobody
-l是监听的服务器IP地址,如果有多个地址的话,可以使用,我这里没有指定服务器的IP地址
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口
-t 指定线程数,默认是4个
-h 打印帮助信息
-c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定
-U 指定监听的UDP端口号,默认是11211
-P是设置保存Memcache的pid文件,我这里是保存在 /var/run/memcached/memcached.pid
-M 内存耗尽时显示错误,而不是删除项

2.配置php.ini
vi /etc/php.ini

对下面2个参数进行修改:
session.save_handler = memcache
session.save_path = "tcp://c服务端的ip:11211"

或者在某个网站根目录的.htaccess里进行修改
vi .htaccess

加上下面2句:
ini_set("session.save_handler", "memcache");  
ini_set("session.save_path", "tcp://c服务端的ip:11211");

3.进行验证
<?php
$memcache = memcache_connect('c服务端的ip', 11211);
var_dump($memcache->get('19216821213c65cedec65b0883238c278eeb573e077'));
$memcache->set('aaaa', 'hello everyone');
var_dump($memcache->get('aaaa'));
?>

会看到
string(37) "TEST|i:1177556731;TEST3|i:1177556881;"
这样的输出,证明 session 正常工作.

如果没有看到输出,请检查你的iptables防火墙是否放过11211端口和80端口.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-399.html

标签: php memcache SESSION 使用 共享 存储

评论: