在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 相关文章推荐
在MongoDB中模拟Auto Increment的php代码
Mar 06 PHP
用PHP实现Ftp用户的在线管理
Feb 16 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
php实现查询百度google收录情况(示例代码)
Aug 02 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
Jan 07 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
Oct 21 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
php实现URL加密解密的方法
Nov 17 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
Mar 13 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 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和MySQL保存和输出图片
2006/10/09 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
js有序数组的连接问题
2013/10/01 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
js转换对象为xml
2017/02/17 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
利用django如何解析用户上传的excel文件
2017/07/24 Python
Python数据结构之单链表详解
2017/09/12 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
Python使用crontab模块设置和清除定时任务操作详解
2019/04/09 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
营业员演讲稿
2013/12/30 职场文书
致短跑运动员广播稿
2014/01/09 职场文书
期末自我鉴定
2014/02/02 职场文书
目标管理责任书
2014/04/15 职场文书
中秋手机店促销方案
2014/06/16 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
2015年读书月活动总结
2015/03/26 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书