在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 身份证号验证函数
May 07 PHP
php 魔术函数使用说明
Feb 21 PHP
php excel类 phpExcel使用方法介绍
Aug 21 PHP
php5 apache 2.2 webservice 创建与配置(java)
Jan 27 PHP
php分页思路以及在ZF中的使用
May 30 PHP
PHP提高编程效率的20个要点
Sep 23 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
YII2框架中使用yii.js实现的post请求
Apr 09 PHP
创建无限极分类树型结构的简单方法
Jun 20 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
thinkPHP框架乐观锁和悲观锁实例分析
Oct 30 PHP
PHP后门隐藏的一些技巧总结
Nov 04 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中的串行化变量和序列化对象
2006/09/05 PHP
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
PHP打印输出函数汇总
2016/08/28 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
python实现猜拳小游戏
2020/04/05 Python
Python random模块制作简易的四位数验证码
2020/02/01 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
美国存储和组织商店:The Container Store
2017/08/16 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
公司感恩节活动策划书
2014/10/11 职场文书
文员岗位职责范本
2015/04/16 职场文书
惊天动地观后感
2015/06/10 职场文书
2015中秋祝酒词
2015/08/12 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
Java实现学生管理系统(IO版)
2022/02/24 Java/Android
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python
Redis唯一ID生成器的实现
2022/07/07 Redis