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


Posted in PHP onApril 10, 2018

本文实例讲述了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

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

测试

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中使用Sockets 从Usenet中获取文件
Jan 10 PHP
基于php split()函数的用法详解
Jun 05 PHP
解决PHP里大量数据循环时内存耗尽的方法
Oct 10 PHP
smarty简单应用实例
Nov 03 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
May 31 PHP
PHP单链表的实现代码
Jul 05 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
laravel migrate初学常见错误的解决方法
Oct 11 PHP
php报错502badgateway解决方法
Oct 11 PHP
Laravel相关的一些故障解决
Aug 19 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 #PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
Apr 09 #PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
Apr 09 #PHP
PHP缓存工具XCache安装与使用方法详解
Apr 09 #PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 #PHP
PHP创建自己的Composer包方法
Apr 09 #PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 #PHP
You might like
上传多个文件的PHP脚本
2006/11/26 PHP
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
js验证表单第二部分
2006/11/25 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
查看keras的默认backend实现方式
2020/06/19 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
得到Class的三个过程是什么
2012/08/10 面试题
教师评优事迹材料
2014/01/10 职场文书
情侣吵架检讨书
2014/02/05 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android