在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 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
php一些公用函数的集合
Mar 27 PHP
php的$_FILES的临时储存文件与回收机制实测过程
Jul 12 PHP
php接口与接口引用的深入解析
Aug 09 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
ThinkPHP实现多数据库连接的解决方法
Jul 01 PHP
php数组使用规则分析
Feb 27 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
学习PHP session的传递方式
Jun 15 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
PHP hebrev()函数用法讲解
Feb 21 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版(2)
2006/10/09 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
php编程每天必学之表单验证
2016/03/01 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
Python实现文件内容批量追加的方法示例
2017/08/29 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
python内存动态分配过程详解
2019/07/15 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
python爬虫基础之urllib的使用
2020/12/31 Python
护士检查书
2014/01/17 职场文书
运动会班级口号
2014/06/09 职场文书
化工实习心得体会
2014/09/09 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
司机岗位职责
2015/02/04 职场文书
大学教师个人总结
2015/02/10 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
HTML+JS实现在线朗读器
2022/02/15 Javascript
python自动化测试之Selenium详解
2022/03/13 Python