数据库实现参考:www.yusian.com/thread-11084-1-1.html
[PHP] 纯文本查看 复制代码 <?php
class SASession{
private static $mem;
public static function start(Memcache $mem){
self::$mem = $mem;
// 设置session模式为用户模式,也可以在php.ini这个配置文件中修改
session_module_name("user");
// 注册过程
session_set_save_handler(
array(__CLASS__, "open"),
array(__CLASS__, "close"),
array(__CLASS__, "read"),
array(__CLASS__, "write"),
array(__CLASS__, "destroy"),
array(__CLASS__, "gc"));
session_start();
}
// 开启
public static function open(){
return true;
}
// 关闭
public static function close(){
return true;
}
// 读
public static function read($sid){
$data = self::$mem->get($sid);
if(empty($data)) return "";
return $data;
}
// 写
public static function write($sid, $data){
$lifetime = ini_get("session.gc_maxlifetime");
self::$mem->set($sid, $data, MEMCACHE_COMPRESSED, $lifetime);
}
// 销毁
public static function destroy($sid){
self::$mem->delete($sid, 0);
}
// 回收
public static function gc($maxlifetime){
// memcache有自动回收机制
return true;
}
}
$mem = new Memcache;
$mem->addServer("localhost", 11211);
SASession::start($mem);
|