- 浏览: 125590 次
- 性别:
- 来自: 福建
文章分类
最新评论
PECL :: Package :: memcache 2.1.1 版本的 Changelog 中有一条:
- Added experimental session storage support. You can use memcached as session storage.
也就是可以直接用 memcache 来作 PHP 的 session.save_handler。
1. 安装 memcached ,还是那套 ./configure; make; make install,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent。
2. 安装 pecl::memcache ,用 pecl 命令行工具安装:
pecl install memcache或直接从源码安装:
phpize ./configure make make install
将 php.ini 中 extension=memcache.so 打开,重启一下 apache,查看 phpinfo 中的 "Registered save handlers" 会有 "files user memcache" 这3个可用。
3. 修改配置文件,在 php.ini 中全局设置:
session.save_handler = memcache session.save_path = "tcp://127.0.0.1:11211"或者某个目录下的 .htaccess :
php_value session.save_handler "memcache" php_value session.save_path "tcp://127.0.0.1:11211"再或者在某个一个应用中:
ini_set("session.save_handler", "memcache"); ini_set("session.save_path", "tcp://127.0.0.1:11211");
使用多个 memcached server 时用逗号","隔开,并且和 Memcache::addServer() 文档中说明的一样,可以带额外的参数"persistent"、"weight"、"timeout"、"retry_interval" 等等,类似这样的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2" 。
4. 启动 memcached:
memcached -d -l 127.0.0.1 -p 11212 -m 128
5. 在程序中使用 memcache 来作 session 存储,用例子测试一下:
<?php session_start(); if (!isset($_SESSION['TEST'])) { $_SESSION['TEST'] = time(); } $_SESSION['TEST3'] = time(); print $_SESSION['TEST']; print "<br><br>"; print $_SESSION['TEST3']; print "<br><br>"; print session_id(); ?>
6. 用 sessionid 去 memcached 里查询一下:
<?php $memcache = memcache_connect('localhost', 11211); var_dump($memcache->get('19216821213c65cedec65b0883238c278eeb573e077')); ?>会有看到
string(37) "TEST|i:1177556731;TEST3|i:1177556881;"
这样的输出,证明 session 正常工作。
用 memcache 来存储 session 在读写速度上会比 files 时快很多,而且在多个服务器需要共用 session 时会比较方便,将这些服务器都配置成使用同一组 memcached 服务器就可以,减少了额外的工作量。缺点是 session 数据都保存在 memory 中,持久化方面有所欠缺,但对 session 数据来说也不是很大的问题。
另外,WS Memcached Session Handler for PHP 提供一种用 session_set_save_handler 来利用 memcached 的方法。
发表评论
-
xxtea对称加密解密算法
2012-06-13 15:20 1699Class Xxtea { public function ... -
PHP判断一个请求是AJAX请求还是普通请求
2012-04-20 16:56 1206条件:使用jquery框架 原理:在jquery框架中,对于 ... -
PHP XDebug扩展
2012-04-18 09:28 1105XDebug 是一个 php 代码的调试工具, 对程序员调试程 ... -
用P3P header解决iframe跨域访问cookie[各种语言]
2012-04-17 14:27 2006各种语言在头文件中, ... -
PHP高级工程师的面试题
2012-04-13 18:12 8901. 基本知识点 HTTP协议中几个状态码的含义:50 ... -
用Zend Studio 快速生成WSDL文件
2011-08-08 17:48 5841最近在写webservice接口,最麻烦的是WSDL文件。以前 ... -
header()函数的应用
2011-02-10 12:00 886备注:使用header()函数前,不能有任何输出,前面放个ob ... -
多维对象转数组
2011-01-12 17:20 756static function object_to_arra ... -
PHP异常处理
2010-12-20 17:33 760/** * PHP异常处理 * * PHP 5 添加了类 ... -
快捷打印变量
2010-12-17 15:06 769function e() { $color = '' ... -
PHP字符串处理函数大全
2010-09-03 10:13 751AddSlashes: 字符串加入斜线。bin2hex: 二进 ... -
interface与abstract的区别
2010-08-06 14:08 10161.相同点: A. 两者都是 ... -
多维数组转化成对象
2010-06-11 13:33 879# 把数组转化成对象 function array_to_o ... -
遍历文件夹下的所有文件和子文件夹
2010-04-23 11:39 838function my_scandir($dir) { ... -
header中Content-type的种类
2010-04-22 00:01 1466Content-type 的说明:'hqx' -> 'a ... -
PHP扩展CURL的用法
2010-04-13 15:05 10811、使用CURL模拟POST表单提交 <?php / ... -
文件操作函数
2010-03-26 12:27 690/** * 读文件 +---------------- ... -
汉字转换成拼音
2010-03-26 12:21 1210<? /* * 把汉字,词转成汉语拼音及拼音缩写,如 ... -
获取客户端IP地址
2010-03-26 12:05 837<?php function getip() { ... -
echo 的另一种写法
2010-03-26 12:01 991<?php $a="变量的值将被带入&quo ...
相关推荐
本文实例讲述了Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法。分享给大家供大家参考,具体如下: 1、首先安装memcache服务端: sudo apt-get install memcached 安装完成后系统 自动启动...
1、直接修改php.ini配置文件 复制代码 ...//127.0.0.100:11211” //设置session储存的位置,多台memcache用逗号隔开,例如:tcp://127.0.0.1:11211,tcp://127.0.0.1:12000 2、利用目录下的 .htaccess 文件配置 复制代码
memcached提供了一个自定义的session处理器可以被用于存储用户session数据到memcached服务端,下面通过本文给大家介绍在php中设置session用memcache来存储的方法总结,对php session memcache相关知识感兴趣的朋友...
1.设置session用memcache来存储方法I: 在 php.ini 中全局设置session.save_handler = memcachesession.save_path = “tcp://127.0.0.1:11211”方法II: 某个目录下的 .htaccess :php_value session.save_handler ...
本文是 PHP实现多服务器session共享之NFS共享的延续,不过这次,我采用memcache来存储session了,memcache的安装请看这里: 搭建高效、可靠、稳定的WEB服务器
本文是 PHP实现多服务器session共享之NFS共享的延续,不过这次,我采用memcache来存储session了,memcache的安装请看这里: 搭建高效、可靠、稳定的WEB服务器;
使用memcache来同步session是还是不错的,当然也可以通过redis来保存session,可以php开启并将Session存储到Redis缓存,下面是设置利用memcache在web集群中同步会话session的实现过程: 1、模拟web集群 我启动了二个...
本文实例讲述了Zend Framework实现将session存储在memcache中的方法。分享给大家供大家参考,具体如下: 在zend framework中,已经可以将session存储在数据库中了,不过还不支持memcache,我简单得实现了一下。 下面...
Nginx+Tomcat7+Memcached集群Session共享 ...主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对session的共享
为什么要session共享? 现在稍微大一点的网站基本上都有好几个子域名,比如...客户端访问访问不同的页面都会把session_id传到服务端,通过session_id来获取session内容。 流程是这样,可是不同的服务器会对
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
为了解决单机处理的瓶颈,增强软件的可用性,我们... 我们使用MemCache+Cookie方案来解决分布式系统共享登录状态的问题。 Memcache服务器本身就是一个Socket服务端,内部数据采用键值对的形式存储在服务器的内存中
2.为了提升session的读写速度,所以我把session存入了memcache里,这样就降低了服务器的I/O压力 3.其实更好的方法是把实例化的类存入memcache里,这样就可以多用户共用了.不必每个访客建立一个会话,目前我的做法是把...
1 session(http)->datebase, apc, memcache 三种方式存储session数据 question:关于两个IE页面之间SESSION数据不能共享 2 pager (分页) 3 image(验证码) 4 fileDir/file -> 图片上传 5 url/cookie->记录...
b/s: 基于浏览器和服务器架构 web程序 c/s: QQ SVN client客户端+ 服务器简单的基于文本行的协议: redis memcache 区别: 都是存储数据的,memcache直接保存到内存中,redis 保存到内存中,关闭之后保存到硬盘中,...