在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 相关文章推荐
WHOIS类的修改版
Oct 09 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
网友原创的PHP模板类代码
Sep 07 PHP
php 文章调用类代码
Aug 11 PHP
php空间不支持socket但支持curl时recaptcha的用法
Nov 07 PHP
PHPMYADMIN导入数据最大为2M的解决方法
Apr 23 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
完美利用Yii2微信后台开发的系列总结
Jul 18 PHP
php结合ajax实现手机发红包的案例
Oct 13 PHP
PHP开发之用微信远程遥控服务器
Jan 25 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
PHP静态文件生成类实例
2014/11/29 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
Javascript的this详解
2019/03/23 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
小程序实现tab标签页
2020/11/16 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
Python argv用法详解
2016/01/08 Python
Python读写docx文件的方法
2018/05/08 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
python远程连接MySQL数据库
2019/04/19 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
零基础小白多久能学会python
2020/06/22 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
岗位竞聘演讲稿范文
2014/04/24 职场文书
后备干部培训方案
2014/05/22 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
仲裁协议书
2014/09/26 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书