在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 相关文章推荐
phpmyadmin操作流程
Oct 09 PHP
php 进度条实现代码
Mar 10 PHP
PHP 进程锁定问题分析研究
Nov 24 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
php生成excel文件的简单方法
Feb 08 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
Nov 05 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
php 后端实现JWT认证方法示例
Sep 04 PHP
设定php简写功能的方法
Nov 28 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
第二节--PHP5 的对象模型
2006/11/16 PHP
数字转英文
2006/12/06 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
php变量范围介绍
2012/10/15 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
Angular实现响应式表单
2017/08/04 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
Python threading的使用方法解析
2019/08/28 Python
python求前n个阶乘的和实例
2020/04/02 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
大学军训感想
2014/02/12 职场文书
大学生军训感想
2014/02/16 职场文书
学雷锋演讲稿
2014/03/04 职场文书
感恩的演讲稿
2014/05/06 职场文书
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis