我们需要定义一个类,用于自动加载调用memcache缓存器同时将设置的session所有值存储在memcac缓存器中,并且session销毁的时候也会自动清除memcache缓存。
安装memcache缓存服务器
主要使用session_set_save_handler()函数class MemcacheUser{
//定义属性,用于存储memcache系统对象
public static $obj;
//定义属性,用于存储获取在php.ini配置文件中的session最大生命周期值
public static $MaxSessionTime;
//初始化类方法
public static function init($mem){
self::$obj=$mem;
self::$MaxSessionTime=init_get('session.gc_maxlifetime'); //获取php.ini中的session属性值,默认1440秒
}
//定义启动类方法
public static function start($mem){
self::init($mem);
session_set_save_handler(
//这个函数有6个参数,都是回调函数,且需要自己定义函数
array(__CLASS__,'open'),
array(__CLASS__,'close'),
array(__CLASS__,'read'),
array(__CLASS__,'write'),
array(__CLASS__,'destroy'),
array(__CLASS__,'gc')
);
}
//准备自定义回调函数
//定义参数1的回调函数open:当session_start()开启的时候自动调用
public static function open($session_path,$session_name){
return true;
}
//定义参数2的回调函数close:当关闭session时自动调用
public static function close(){
return true;
}
//定义参数3的回调函数read:当memcache中读session数据时自动调用
public static function read($id){
$data=self::$obj->get($id);
return $data;
}
//定义参数4的回调函数write:当session中信号写入memcache中自动调用
public static function write($id,$data){
self::$obj->add($id,$data,MEMCACHE_COMPRESSED,self::$MaxSessionTime);
return true;
}
//定义参数5的回调函数destroy:当session销毁时候自动调用
public static function destroy($id){
self::$obj->delete($id);
}
//定义参数6的回调函数gc:自动回收垃圾
public static function gc(){
return true;
}
}
//获取系统memcache对象
$memcache=new Memcache();
$memcache->connect('127.0.0.1',11211);
//将对象传到类并自动调用
MemcacheUser::start($memcache);
使用注意事项:
引入类文件必须在session_start()的上边引入!!