session缓存PHP,将Session数据自动存储在Memcache缓存器中

我们需要定义一个类,用于自动加载调用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()的上边引入!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值