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的更多相关文章

  1. 将Session写入Memcache

    通过session_set_save_handler()方法自定义Session写入Memcache <?php class MemSession{ private static $handle ...

  2. 将Session写入数据库

    使用session_set_save_handler()函数,将Session的内容写入数据库 <?php /* *@author Fahy *@link http://home.cnblogs ...

  3. session 存到memcache里

    web服务器的php session都给memcached ,这样你不管分发器把 ip连接分给哪个web服务器都不会有问题了,配置方法很简单,就在php的配置文件内 增加一条语句就可以了,不过前提你需 ...

  4. PHP session 写入数据库中的方法

    首先解释下为什么要把session 写到数据库中呢,session 一般默认是以文件的形式放在php.ini 配置的目录中的, 如果你的网站实现了多台服务器负载均衡,这样用户访问你的网站,可能进入的服 ...

  5. [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 ...

  6. c# Session写入读取操作

    /// <summary> /// 写Session /// </summary> /// <typeparam name="T">Sessio ...

  7. session写入数据库

    <?php class session { private static $handle = null; private static $ip = null; private static $l ...

  8. session之memcache

    nginx服务器配置:192.168.200.111[root@nginx ~]# hostname nginx[root@nginx ~]# bash[root@nginx ~]# vim /usr ...

  9. session或memcache过期之后跳转到登陆页面并跳出iframe框架

    <!--在你想控制跳转的页面,比如login.html中的<head>与</head>之间加入以下代码:--> <script> if (window ...

随机推荐

  1. 开机后发现Win7桌面上什么都没有该如何恢复

    开机后发现Win7桌面上什么都没有该如何恢复 win7桌面上什么都没有该如何恢复:当我们打开电脑,发现win7桌面上什么都没有,那么该如何恢复呢?下面由我来介绍windows7桌面上图标不显示的解决方 ...

  2. 从基于idea的第一个javaweb项目到shell脚本项目自动发布(jdk1.8,mysql5.7,maven3.5,tomcat9,subversion,centos7.3)之一

    首先说一下为什么写这篇文章,因为从正式参加工作就做javaweb开发,一路走来,碰到了很多的问题,每次问题都想从度娘那里得到准确的答案,但是,每个人遇到的问题不尽相同,问题的解决方案有时候也只是仅供参 ...

  3. jsp基本语法及运行原理

    一.jsp简介 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导.许多公司参与一起建立 ...

  4. 转:每天一个linux命令(1):ls命令

    ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...

  5. Java入门(1) —— 变量、运算符、分支结构和程序员思维的理解

    1.计算机语言的发展史: 机器语言:机器语言是指一台计算机全部的指令集合. 汇编语言:为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母.符号串来替代一个特定的指令的二进制 ...

  6. Canvas 宽度、高度设置

    在HTML5中插入一个Canvas元素,如下: <canvas id="mycanvas"></canvas> 要想在该画板上进行操作,则需要先取得其执行上 ...

  7. ssm整合说明与模板-Spring Spring MVC Mybatis整合开发

    ssm整合说明 spring+spring mvc+mybatis 说明 源码下载 由于之前存在ssh框架,spring+struts+hibernate,其中spring负责aop与ioc,所以一般 ...

  8. 前端开发【第一篇:HTML】

    HTML初识 1.什么是HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都 ...

  9. java代码块的理解

    最近在复习java基础,在看到java代码块的时候,忽然发现自己貌似对于java代码块一无所知,于是赶紧对着一些资料实战演练了一把. 对于java代码块,不难根据名称看出其实就是一些java语句的集合 ...

  10. MySQL(十一)之触发器

    上一篇介绍的是比较简单的视图,其实用起来是相对比较简单的,以后有什么更多的关于视图的用法,到时候在自己补充.接下来让我们一起了解一下触发器的使用! 一.触发器概述 1.1.什么是触发器 触发器(Tri ...