PHP实现分布式memcache设置web集群session同步的方法

2018-09-07 14:16

阅读:288

  本文实例讲述了PHP实现分布式memcache设置web集群session同步的方法。

  php的session默认是文件存储:

   session.save_handler = files session.save_path = /var/lib/php/session

  当做web集群,需要session同步时,将session存到分布式memcache来达到共享同步是个不错的办法

  方法:

  第1种:

   session.save_handler = memcache session.save_path = tcp://192.168.20.193:11211,tcp://192.168.20.194:11211

  第2种:

  在php文件中使用ini_set函数进行配置,适合无法修改配置文件的虚拟主机

   <?php .... ini_set(session.save_handler, memcache); ini_set(session.save_path, tcp://192.168.20.193:11211,tcp://192.168.20.194:11211); .... ?>

  重启web服务器

   service httpd restart

  查看phpinfo

  测试

  192.168.20.193中的login.php

   <?php session_start(); $_SESSION[login_time] = time(); $_SESSION[username] = test2; $token=session_id(); echo $token; //memache实现 $mem = new Memcache(); $mem->addServer(192.168.20.193,11211); $mem->addServer(192.168.20.194,11211); /* //memached实现 $mem = new Memcached(); $servers = array( array(192.168.20.193, 11211, 33), array(192.168.20.194, 11211, 67) ); $mem->addServers($servers); */ echo <hr>; print_r($mem->get($token)); ?> <div> <a href=跳转到194网站的个人中心</a> </div>

  192.168.20.194中的user.php

   <?php $mem = new Memcache(); $mem->addServer(192.168.20.193,11211); $mem->addServer(192.168.20.194,11211); $token=$_GET[token];//获取传过来的token print_r($mem->get($token)); ?> <div> <a href=返回193网站的个人中心</a> </div>

  更多关于PHP相关内容感兴趣的读者可查看本站专题:《php缓存技术总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

  希望本文所述对大家PHP程序设计有所帮助。


评论


亲,登录后才可以留言!