redis 替代php文件存储session
定义个SessionManager 类
class SessionManager {
private $redis;
public function __construct(){
$this->redis = new Redis();
$this->redis->connect('192.168.0.102', 6379);
$retval =session_set_save_handler(
array($this,"open"),
array($this,"close"),
array($this,"read"),
array($this,"write"),
array($this,"destroy"),
array($this,"gc")
);
session_start();
}
public function open($path,$name){
return true;
}
public function close(){
return true;
}
public function read($id){
$session_value = $this->redis->get($id);
if($session_value){
return $session_value;
}else{
return "";
}
}
public function write($id,$data){
if($this->redis->set($id,$data)){
return true;
}else{
return false;
}
}
public function destroy($id){
if($this->redis->delete($id)){
return true;
}else{
return false;
}
}
public function gc($maxlifetime){
return true;
}
public function __destruct(){
session_write_close();
}
}
创建一个session_set.php 代码如下
include("SessionManager.php");
new SessionManager();
$_SESSION['user_name']="xxdcsnd@sina.com";
创建一个session_set.php 代码如下
include("SessionManager.php");
new SessionManager();
echo $_SESSION['user_name'];
测试输出 结果 xxdcsnd@sina.com
注意 :php.ini session.save-hadler 设置为 user ,否则session_set_save_handler 不会生效
以上就介绍了redis 替代php文件存储session,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
上一篇: MYSQL建表优化注意事项
下一篇: php重定向网页
推荐阅读
-
PHP用mysql数据库存储session的代码_PHP
-
将PHP的session数据存储到数据库中的代码实例,session数据存储_PHP教程
-
sql2000数据库 PHP用mysql数据库存储session的代码
-
PHP操作MongoDB GridFS 存储文件的详解
-
php将数组存储为文本文件方法汇总
-
php使用Session和文件统计在线人数,
-
php中Session的生成机制、回收机制和存储机制探究
-
laravel5.2为什么在服务器上获取不到session,storage下的sessions下的文件里面存储的有?
-
php session存入redis,会有并发一致性的问题?redis 写不是原子性的吗?
-
七牛云存储 - 小白求助:关于百度ueditor编辑器 php版 文件保存位置的问题