自定义session储存 MEMCACHE 方式类
在php.ini配置文件中更改设置 (Registered_save_handlers 有三种方式 files user memcache)
session.save_handler = user 表示用户自定义session类
<?php
/*
* 自定义session储存memcache方式的类
*
*/
class MemSession{
public static $mem; //pdo的对象
public static $maxlifetime; //最大生存时间
public static function start(Memcache $mem){//限制变量是Memcache类
self::$mem = $mem;
self::$maxlifetime = ini_get('session.gc_maxlifetime');
//注册自定义函数
session_set_save_handler(
array(__CLASS__,'open'),
array(__CLASS__,'close'),
array(__CLASS__,'read'),
array(__CLASS__,'write'),
array(__CLASS__,'destroy'),
array(__CLASS__, 'gc'));
//开启会话
session_start();
}
//开始 sesssion_start()
public static function open($path,$name){
echo 'open<br/>';
return true;
}
//关闭
public static function close(){
echo 'close<br/>';
return true;
}
//读取 echo
public static function read($sid){
echo 'read<br/>';
$data = self::$mem->get($sid);
if(empty($data)){
return ' ';
}
return $data;
}
//写入 $_SESSION['username']='yang'
public static function write($sid,$data){
echo 'write<br/>';
self::$mem->set($sid, $data,MEMCACHE_COMPRESSED,self::$maxlifetime);// 如果设置为0表明该元素永不过期
}
//销毁 session_destroy
public static function destroy($sid){
echo 'destroy<br/>';
self::$mem->delete($sid,0);//0 表示立即删除 0秒
}
//回收垃圾
public static function gc($maxlifetime){
echo 'gc<br/>';
return true;
}
}
//创建对象
$mem = new Memcache();
//添加两台memcache服务器
$mem->addserver('localhost',11211);
$mem->addserver('192.168.10.254',11211);
//开始
MemSession::start($mem);