redis 替代php文件存储session的实例
redis替代php文件存储session的实例
查看实例之前请先了解 PHPsession_set_save_handler函数的用法
定义个SessionManager 类
classSessionManager{
private$redis;
publicfunction__construct(){
$this->redis=newRedis();
$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();
}
publicfunctionopen($path,$name){
returntrue;
}
publicfunctionclose(){
returntrue;
}
publicfunctionread($id){
$session_value=$this->redis->get($id);
if($session_value){
return$session_value;
}else{
return"";
}
}
publicfunctionwrite($id,$data){
if($this->redis->set($id,$data)){
returntrue;
}else{
returnfalse;
}
}
publicfunctiondestroy($id){
if($this->redis->delete($id)){
returntrue;
}else{
returnfalse;
}
}
publicfunctiongc($maxlifetime){
returntrue;
}
publicfunction__destruct(){
session_write_close();
}
}
创建一个session_set.php代码如下
include("SessionManager.php");
newSessionManager();
$_SESSION['user_name']="xxdcsnd@sina.com";
创建一个session_set.php代码如下
include("SessionManager.php");
newSessionManager();
echo$_SESSION['user_name'];
测试输出结果 xxdcsnd@sina.com
注意:php.inisession.save-hadler设置为user,否则session_set_save_handler不会生效
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。