在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 相关文章推荐
function.inc.php超越php
Dec 09 PHP
用PHP的ob_start();控制您的浏览器cache!
Feb 14 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
深入解析PHP中逗号与点号的区别
Aug 05 PHP
ThinkPHP模板中数组循环实例
Oct 30 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
制作个性化的WordPress登陆界面的实例教程
May 21 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
Nov 20 PHP
PHP在linux上执行外部命令的方法
Feb 06 PHP
PHP代码加密的方法总结
Mar 13 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 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
如何使用php输出时间格式
2013/08/31 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
波兰补充商店:Muscle Power
2018/10/29 全球购物
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
优秀企业获奖感言
2014/02/01 职场文书
翻译学院毕业生自荐书
2014/02/02 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
Javascript webpack动态import
2022/04/19 Javascript