PHP实现Session入库/存入redis的方法
对于大访问量的站点使用默认的Session 并不合适,我们可以将其存入数据库、或者使用Redis KEY-VALUE数据存储方案 首先新建一个session表 Mysql 的memory引擎采用内存表,所有数据存储在内存,操作速度快 $this->db = Database::getInstance();
//获取数据库实力
///var_dump($this->db);
} public function open($savePath,$sessionName)
} public function close() public function read($id)
$sql = "insert into sessions(sid,updatetime,data) values('$id','$now','$data')"; public function destroy($id) public function gc($sessMaxLifeTime) 实例化 此处 PHP 手册可以有两种方法 1,实现了SessionHandlerInterface借口的对象,自PHP5.4可以使用 2 ,直接使用 session_set_save_handler session_set_save_handler($handler,true);
session_start(); }else{ ini_set('session.use_trans_sid',0); ini_set('session.use_cookies',1); ini_set('session.cookie_path','/'); ini_set('session.save_handler','user'); session_module_name('user'); session_set_save_handler(array($session,"open"),array($session,"close"),"read"),"write"),"destory"),"gc")); session_start(); } $_SESSION['QQ']="QQ"; echo $_SESSION['QQ']; 数据库代码 db.php public function getOne($sql){
$rs =self::$db->query($sql);
@$rs->setFetchMode(PDO::FETCH_ASSOC);//返回关联数组
$result = $rs -> fetch();
return $result;
}
public function execute($sql){
$rs = self::$db->exec($sql);
return $rs;
}
} //$data = Database::getInstance(); 使用REDIS 存储SESSION redis = new Redis();
$this->redis->connect('127.0.0.1',6379); //连接redis
$retval = session_set_save_handler(
array($this,array($this,"gc")
);
session_start();
}
} $re = new SessionManager(); 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |