分布式memcache实现web集群session同步

来源:互联网 发布:淘宝怎么出售禁售商品 编辑:程序博客网 时间:2024/06/11 06:41
php的session默认是文件存储:
session.save_handler = files  session.save_path = "/var/lib/php/session"  

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

方法:

第1种:
vi /etc/php.ini
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

<?phpsession_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="http://192.168.20.194/user.php?token=<?php echo $token;?>" target="_balnk">跳转到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'];//获取传过来的tokenprint_r($mem->get($token));?><div><a href="http://192.168.20.193/user.php?token=<?php echo $token;?>" target="_balnk">返回193网站的个人中心</a></div>




0 0
原创粉丝点击