在php中设置session用memcache来存储的方法总结


Posted in PHP onJanuary 14, 2016

memcached提供了一个自定义的session处理器可以被用于存储用户session数据到memcached服务端。一个完全独立的memcached实例将会在内部使用,因此如果需要您可以设置一个不同的服务器池。session的key被存储在前缀memc.sess.key.之下,因此, 如果你对session和通常的缓存使用了同样的服务器池,请注意这一点。译注:另外一个session和通常缓存分离的原因是当通常的缓存占满了memcached服务端后,可能会导致你的session被从缓存中踢除,导致用户莫名的掉线。

session.save_handler string

设置为memcached开启memcached的session处理器。

session.save_path string

定义一个逗号分隔的hostname:port样式的session缓存服务器池,例如: "sess1:11211, sess2:11211".

方法I: 在 php.ini 中全局设置

session.save_handler = memcache 
session.save_path = "tcp://127.0.0.1:11211"

方法II: 某个目录下的 .htaccess

php_value session.save_handler "memcache" 
php_value session.save_path "tcp://127.0.0.1:11211"

方法III: 再或者在某个一个应用中

ini_set("session.save_handler", "memcache"); 
ini_set("session.save_path", "tcp://...:");

使用多个 memcached server 时用逗号","隔开,并且和 Memcache::addServer() 文档中说明的一样,可以带额外的参数"persistent"、"weight"、"timeout"、"retry_interval" 等等,类似这样的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2" 。

如果安装的PECL是memcached(依赖libmemcached库的那个扩展),则配置应为

ini_set("session.save_handler", "memcached"); // 是memcached不是memcache 
ini_set("session.save_path", "127.0.0.1:11211"); // 不要tcp:[/b]

代码例子(不依赖libmemcached库的那个)

<?php 
session_start(); 
if (!isset($_SESSION['TEST'])) { 
$_SESSION['TEST'] = time(); 
} 
$_SESSION['TEST'] = time(); 
print $_SESSION['TEST']; 
print "<br><br>"; 
print $_SESSION['TEST']; 
print "<br><br>"; 
print session_id(); 
?>

用 sessionid 去 memcached 里查询一下:

<?php 
$memcache = memcache_connect('localhost', ); 
var_dump($memcache->get('ccedecbceebe')); 
$memcache->set('aaaa', 'hello everyone'); 
var_dump($memcache->get('aaaa')); 
?>

会看到

string(37) "TEST|i:1177556731;TEST3|i:1177556881;"

这样的输出,证明 session 正常工作。

下面通过两种用法实例给大家介绍下php中使用memcached来存储session

一、

ini_set("session.save_handler", "memcache");
ini_set("session.save_path","tcp://127.0.0.1:11211");

多个memcached

ini_set("session.save_path","tcp://127.0.0.1:11211,tcp://127.0.0.1:11211");

二、

ini_set("session.save_handler", "memcached");
ini_set("session.save_path","...:");

多个memcached

ini_set("session.save_path","127.0.0.1:11211,127.0.0.1:11211");
PHP 相关文章推荐
php for 循环语句使用方法详细说明
May 09 PHP
php懒人函数 自动添加数据
Jun 28 PHP
php中长文章分页显示实现代码
Sep 29 PHP
thinkPHP学习笔记之安装配置篇
Mar 05 PHP
PHP实现在线阅读PDF文件的方法
Jun 17 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
php查询及多条件查询
Feb 26 PHP
详解Yii2高级版引入bootstrap.js的一个办法
Mar 21 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
php tpl模板引擎定义与使用示例
Aug 09 PHP
php模拟post提交请求调用接口示例解析
Aug 07 PHP
thinkphp实现图片上传功能
Jan 13 #PHP
PHP实现伪静态方法汇总
Jan 13 #PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 #PHP
优化WordPress中文章与评论的时间显示
Jan 12 #PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 #PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 #PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 #PHP
You might like
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
javascript事件模型代码
2007/07/01 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
2018/04/26 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
Python实现ATM系统
2020/02/17 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
师范学院教师自荐书
2014/01/31 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
弄虚作假心得体会
2014/09/10 职场文书
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python