在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 上传文件的方法(类)
Jul 30 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
php获取操作系统语言代码
Nov 04 PHP
php自定义session示例分享
Apr 22 PHP
php结合ajax实现赞、顶、踩功能实例
May 12 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
浅谈PHP命令执行php文件需要注意的问题
Dec 16 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 PHP
WordPress免插件实现面包屑导航的示例代码
Aug 20 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
python+opencv实现动态物体追踪
2018/01/09 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
python实现学生管理系统开发
2020/07/24 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
空指针到底是什么
2012/08/07 面试题
自荐信的两点禁忌
2013/10/30 职场文书
保研推荐信
2014/05/09 职场文书
节约用水演讲稿
2014/05/21 职场文书
小学教师党员承诺书
2015/04/27 职场文书
工作收入证明模板
2015/06/12 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
高三物理教学反思
2016/02/20 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis