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 相关文章推荐
使用sockets:从新闻组中获取文章(一)
Oct 09 PHP
关于Intype一些小问题的解决办法
Mar 28 PHP
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
PHP中几种常见的超时处理全面总结
Sep 11 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
微信API接口大全
Apr 15 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
PHP基于ORM方式操作MySQL数据库实例
Jun 21 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 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
Laravel框架生命周期与原理分析
2018/06/12 PHP
任意位置显示html菜单
2007/02/01 Javascript
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
python练习程序批量修改文件名
2014/01/16 Python
Python常用模块介绍
2014/11/21 Python
Python中非常实用的一些功能和函数分享
2015/02/14 Python
Python中下划线的使用方法
2015/03/27 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
Python socket实现简单聊天室
2018/04/01 Python
python调用API实现智能回复机器人
2018/04/10 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
如何表示python中的相对路径
2020/07/08 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
小学生自我评价范文
2014/01/25 职场文书
商场主管竞聘书
2014/03/31 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
应届生求职信
2014/05/31 职场文书
优秀纪检干部材料
2014/08/27 职场文书
立志成才演讲稿
2014/09/04 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书