Linux下PHP利用Memcached实现session共享

本方式适合Memcache内存方式存储Session数据的方式,

同时如果构建分布式的Memcache服务器,
能够保存相当多缓存数据,并且适合用户量比较多并发比较大的情况

服务端设置
服务端必须安装memcached,安装方法http://dev.12301cn.com/?p=314

启动服务端,分配8G内存,监听11211端口, 监听
#/usr/local/bin/memcached -d -m 8192 -p 11211 -u www -c 65535

参数说明:
-d: (run as a daemon) 选项是启动一个守护进程
-m : (max memory to use for items in megabytes (default: 64 MB)) 是分配给
Memcache 使用的内存数量,单位是MB,我这里是100MB,
-u:(assume identity of <username> (only when run as root))是运行Memcache 的用
户,我这里是root,
-l:(interface to listen on)是监听的服务器IP 地址,不设置-l则无限制,
-p:是设置Memcache 监听的端口,这里设置了11211,最好是1024以上的端口,
-c:选项是最大运行的并发连接数,默认是1024,这里设置了65535,根据服务器的
负载量来设定,
-P:(save PID in <file>, only used with -d option)是设置保存Memcache 的pid 文件,
这里是保存在/tmp/memcached.pid

重新设置防火墙,包括iptables与TCP_Wrappers, port 11211必须提供出去.因此在/etc/sysconfig/iptables文件中,要增加:
#vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state –state NEW -m tcp –dport 11211 -j ACCEPT

#services iptables restart

客户端设置
必须要求PHP安装了Memcache扩展,安装方法http://dev.12301cn.com/?p=418
获取Memcache扩展请访问: http://pecl.php.net

方式一(程序无需作修改):
修改php.ini(需要memcache.so扩展)
session.save_handler = memcache
session.save_path = tcp://193.168.1.251:11211

方式二(要在配置文件中设置一下):
ini_set(“session.save_handler”,”memcache”);
ini_set(“session.save_path”,”tcp://192.168.1.2:11211″);

 

未经允许不得转载:SuperMan's blog » Linux下PHP利用Memcached实现session共享

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址