网站制作学习网PHP→正文:Thinkphp用Redis存储session
字体:

Thinkphp用Redis存储session

PHP 2015/3/21 16:56:52  点击:不统计

http://%77w%77%2E%66%6F%72%61%73%70%2E%63n网站制作学习
 首先你的服务器上已经配置好了redis并且能够由php进行操作,如果没有或者不清楚可以参考

linux php安装redis
//如果已经准备好则继续了
1. 修改thinkphp配置文件,修改又原来的php session或者Db session更改为redis
(我原来用的是DB)
原来的配置:
'SESSION_TYPE' => 'Db',
新的配置
'SESSION_TYPE' => 'Redis',
'REDIS_HOST' => '127.0.0.1',//这里是redis的ip
'REDIS_PORT' => '6379',//端口
 
2. 新增Redis session类,这里是要在Thinkphp/Extend/Driver/Session文件夹里面扩展
你可以看到原来的SessionDb.class.php 我们扩展SessionRedis.class.php
//对应的SessionRedis.class.php 
<?php
//自定义redis处理 驱动
Class SessionRedis {
Private $redis;
Private $expire;
    Public function execute(){
session_set_save_handler(
array(&$this,"open"),
array(&$this,"close"),
array(&$this,"read"),
array(&$this,"write"),
array(&$this,"destroy"),
array(&$this,"gc")
);
}
Public function open ($path, $name) {
$this->expire = C('SESSION_EXPIRE') ? C('SESSION_EXPIRE') : ini_get('session.gc_maxlifetime');
$this->redis = new Redis();
return $this->redis->connect(C('REDIS_HOST'),C('REDIS_PORT'));
}
    Public function close () {
return $this->redis->close();
}
  
Public function read ($id) {
$id = C('SESSION_PREFIX') . $id;
$data = $this->redis->get($id);
return $data ? $data : '';
}
Public function write ($id, $data) {
$id = C('SESSION_PREFIX') . $id;
return $this->redis->set($id, $data, $this->expire);
}
Public function destroy ($id) {
$id = C('SESSION_PREFIX') . $id;
return $this->redis->delete($id);
}
Public function gc ($maxLifeTime) {
return true;
}
}
 
//将上述代码 定义为SessionRedis.class.php,放置于Thinkphp/Extend/Driver/Session下
在开启redis服务情况下,然后我们直接运行就可以了。
 

http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E

·上一篇:php http跳转到https >>    ·下一篇:mysql 两个表更新,多表更新 >>
推荐文章
最新文章