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

yipeiwu_com6年前PHP代码库

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

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

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

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

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

相关文章

10个值得深思的PHP面试题

10个值得深思的PHP面试题

文章所罗列的问题虽然看似简单,但是每个背后都涵盖了一个或几个大家容易忽视的基础知识点,希望能够帮助到你的面试和平时工作。 Q1 第一个问题关于弱类型 $str1 = 'yabadab...

php树型类实例

本文实例讲述了php树型类。分享给大家供大家参考。具体分析如下: 该实例原理简单,学过数据结构的一看就明白是什么道理了,不过今天在使用时数据中出现了子节点id(71)小于父节点id(10...

php4与php5的区别小结(配置异同)

php4 没有 静态成员 php网页后台出现这样的错误,查过SubPages1.php并没有找到相应的错误。网站在自己本地测试完全正常,传到空间以后就出现这样的错误。连验证码都看不到了,...

php获取错误信息的方法

本文实例讲述了php获取错误信息的方法。分享给大家供大家参考。具体如下: function error_reg(){ $ar=array( E_ERROR => 'err...

PHP数组循环操作详细介绍 附实例代码

PHP数组还是比较常用的,于是我研究了一下PHP数组循环操作,在这里拿出来和大家分享一下,希望对大家有用。PHP基本上就是一种数组语言。时常要进行大量的PHP数组循环操作,主要有两种方式...