session写入memcache
1 <?php
2 class MemSession{
3 private static $handler = null;
4 private static $lifetime = null;
5 private static $time = null;
6 const MS = 'session';
7
8 private static function init($handler){
9 self::$handler = $handler;
10 self::$lifetime = ini_get('session.gc_maxlifetime');
11 self::$time = time();
12 }
13
14 public static function start($memcache){
15 self::init($memcache);
16 //调用类中的方法要用数组,__CLASS__代表本类
17 session_set_save_handler(
18 array(__CLASS__,'open'),
19 array(__CLASS__,'close'),
20 array(__CLASS__,'read'),
21 array(__CLASS__,'write'),
22 array(__CLASS__,'destroy'),
23 array(__CLASS__,'gc')
24 );
25 session_start();
26 }
27
28 public static function open($path,$name){
29
30 }
31 public static function close(){
32
33 }
34
35 public static function read($PHPSESSID){
36 $val = self::$handler->get(self::session_key($PHPSESSID));
37
38 if($val===false || $val==null){
39 return false;
40 }
41 return $val;
42 }
43 public static function write($PHPSESSID,$data){
44 $method = $data? 'set':'replace';
45 return self::$handler->$method(self::session_key($PHPSESSID),$data,MEMCACHE_COMPRESSED,self::$lifetime);
46 }
47
48 public static function destroy($PHPSESSID){
49 return self::$handle->delete(self::session_key($PHPSESSID));
50 }
51 //memcache本身就有限定时间,数据自动销毁,所以可不使用gc方法
52 public static function gc($lifetime){
53 return true;
54 }
55
56 //给sessionID加前缀,避免key重复
57 private static function session_key($PHPSESSID){
58 $session_key = self::MS.$PHPSESSID;
59 return $session_key;
60 }
61 }
62 $mem = new Memcache;
63 $mem->connect("localhost",11211) or die("could not connect");
64 MemSession::start($mem);
session写入memcache的更多相关文章
- 将Session写入Memcache
通过session_set_save_handler()方法自定义Session写入Memcache <?php class MemSession{ private static $handle ...
- 将Session写入数据库
使用session_set_save_handler()函数,将Session的内容写入数据库 <?php /* *@author Fahy *@link http://home.cnblogs ...
- session 存到memcache里
web服务器的php session都给memcached ,这样你不管分发器把 ip连接分给哪个web服务器都不会有问题了,配置方法很简单,就在php的配置文件内 增加一条语句就可以了,不过前提你需 ...
- PHP session 写入数据库中的方法
首先解释下为什么要把session 写到数据库中呢,session 一般默认是以文件的形式放在php.ini 配置的目录中的, 如果你的网站实现了多台服务器负载均衡,这样用户访问你的网站,可能进入的服 ...
- [Yii Framework] Share the session with memcache in Yii
When developing distributed applications with Yii, naturally, we will face that we have to share the ...
- c# Session写入读取操作
/// <summary> /// 写Session /// </summary> /// <typeparam name="T">Sessio ...
- session写入数据库
<?php class session { private static $handle = null; private static $ip = null; private static $l ...
- session之memcache
nginx服务器配置:192.168.200.111[root@nginx ~]# hostname nginx[root@nginx ~]# bash[root@nginx ~]# vim /usr ...
- session或memcache过期之后跳转到登陆页面并跳出iframe框架
<!--在你想控制跳转的页面,比如login.html中的<head>与</head>之间加入以下代码:--> <script> if (window ...
随机推荐
- 如何将Windows7系统中“运行”历史记录全部清除
如何将Windows7系统中“运行”历史记录全部清除.. 如何将Windows7系统中“运行”历史记录全部清除 1.任务栏空白处按下鼠标右键,在右键菜单栏中选择“属性”, 2.切换到“开始菜单”选项卡 ...
- MySQL 数据库修改登录密码
MySQL 数据库修改登录密码.. -------- mysql修改密码 默认的密码为空:mysql -u root -p第一次更改密码:mysqladmin -uroot -p password x ...
- Java开源连接池c3p0的基本用法
前言:其实c3p0只是一个实现了javax.sql 接口 DataSource的一个工具集,使用c3p0可以帮我们管理宝贵的Connection资源,无须我们去创建连接(免去每次配置数据库驱动,url ...
- SoapUI中读取法文字符
最近测试中,使用SoapUI时需要读取excel中的法文数据作为参数,groovy script中使用的是jxl进行excel的读取, 开始时一直显示乱码,而后在script中添加如下wookbook ...
- .NET Core 2.0 应用程序大小减少50%
.NET Core 2.0减小体积瘦身官方工具 IL Linker. IL Linker 来源于mono的linker https://github.com/mono/linker,目前还是预览版本 ...
- C#:委托(delegate)和事件(event) (转)
委托(delegate): 它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现.下面来看看它的实现步骤: 声明一个delegate对象. 实现和delegate具有相同 ...
- oracle锁表问题解决方法
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp52 Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程 ...
- CGI + FastCGI(PHP-FPM)联系和区别的图解 + 注释
一.背景 参考了几篇文章,总结成图解 + 注释方便以后查阅. 参考资料: 1.https://www.zhihu.com/question/19582041 2.https://segmentfaul ...
- 安装JDK详细步骤,以及环境变量配置
1.JDK 1)下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 点击同意, ...
- 解决Android Studio中Refreshing gradle project时间过长的最简单方法
Refreshing gradle project往往出现在Gradle出现更新,需要从墙外的网重新拖下来的前提下.具体可以查看以下文件:/path/to/project/gradle/wrapper ...