设为首页 收藏本站
查看: 1087|回复: 0

[经验分享] web集群时利用memcache来同步session

[复制链接]

尚未签到

发表于 2015-8-31 10:49:03 | 显示全部楼层 |阅读模式
web集群时利用memcache来同步session


  张映 发表于 2010-07-19
  分类目录: php
  以前我写过一篇关于web集群时,session同步怎么解决的文章。博文名称是web集群时session同步的3种方法,个人觉得用memcache来同步session是最好的,下面是我的设置过程
  1,模拟web集群
  我启动了二个memcached进程,分别模拟二台服务器
  /usr/local/bin/memcached -d -m 20 -u zhangy -p 12000 -P ./memcached.pid
/usr/local/bin/memcached -d -m 20 -u zhangy -p 13000 -P ./mem.pid
  
  2,修改php的配置
  vi /usr/local/php/lib/php.ini
  session.save_handler = “memcache”
memcache.hash_strategy = “consistent”
session.save_path = “tcp://127.0.0.1:13000?weight=10,tcp://127.0.0.1:12000″

  说明:第一行,session的储存方式是memcache;第二行,memcache的hash算法是consistent;第三行,session储存的地位;
  3,重起apache
  查看phpinfo

session

Session Supportenabled
Registered save handlersfiles user  sqlite memcache
Registered serializer handlersphp  php_binary
  紧接着下面是

session.save_pathtcp://127.0.0.1:13000,tcp://127.0.0.1:12000tcp://127.0.0.1:13000,tcp://127.0.0.1:12000
  4,做个简单测试
  a),准备文件session.php


  • <?php  
  • session_start();  
  • $_SESSION['username'] = "abcabc";  
  • echo session_id();  
  • ?>  

<?phpsession_start();$_SESSION['username'] = "abcabc";echo session_id();?>
  b),显示session内容文件


  • <?php  
  • $mem = new Memcache;  
  • $mem->addServer("127.0.0.1",12000)or die ("Could not add server 12000");  
  • $mem->addServer("127.0.0.1",13000)or die ("Could not add server 13000");  
  • $val = $mem->get('qp0mrob2ovcqle3u4lbr4obsa5');    //echo session_id();  
  • echo $val;  
  • ?>  

<?php$mem = new Memcache;$mem->addServer("127.0.0.1",12000)or die ("Could not add server 12000");$mem->addServer("127.0.0.1",13000)or die ("Could not add server 13000");$val = $mem->get('qp0mrob2ovcqle3u4lbr4obsa5');    //echo session_id();echo $val;?>
  c),结果是username|s:6:”abcabc”;
  5,关于memcache的api
  网上有很多关于memcache的api,你也可以自己写一个,php.net里面memcache的方法说的很清楚,并且例子很多,做起来很快。我是把thinkphp里面的有关于cache的类库拿出来,整合到自己的代码中。这个类库中不光包括memcahce,还有其他的一些cache。网上有关memcache的api思想差不多,大同小异,思想差不多,我觉得都是拿过来,山寨一下就是个新的。自己去找一下吧。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106721-1-1.html 上篇帖子: 用mysql触发器自动更新memcache 下篇帖子: windows环境下memcache服务器使用经验
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表