thinkphp结合redis存储session

关于cookie和session还有缓存的区别,为何要将session存在内存中我就不多说了,直接进入正题,如何将session存储在内存中。

第一步 你要有个redis Server端,如何安装 搜百度 很简单。

第二步 让php支持redis,在git上有phpredis 仓库里面有说明,如果是windows,看这里http://jingyan.baidu.com/article/9989c74631873bf648ecfed4.html 注意php版本,vx9和vx11,ts与nts,x86与x64的区别,不知道自身的是啥,去phpinfo看/

第三步 在配置文件中加入

'SESSION_TYPE' =>'Redis',
'SESSION PREFIX'=>'kok',
'REDIS_HOST'=>'127.0.0.1',
'REDIS_PORT'=>6379,
'REDIS_EXPIRE'=>3600

第4步 在thinkphp的Session/Driver 目录下 存储一个Redis.class.php

<?php
namespace Think\Session\Driver;
class Redis {
//  Redis连接对象
    private $redis;
//  Session过期时间
    private $expire;
    /**
     * 打开方法
     * @param type $path
     * @param type $name
     * @return type
     */
    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'));
    }
    /**
     * 关闭
     * @return type
     */
    public function close() {
        return $this->redis->close();
    }
    /**
     * 读取
     * @param string $id
     * @return type
     */
    public function read($id) {
        $id = C('SESSION_PREFIX') . $id;
        $data = $this->redis->get($id);
        return $data ? $data : '';
    }
    /**
     * 写入
     * @param string $id
     * @param type $data
     * @return type
     */
    public function write($id, $data) {
        $id = C('SESSION_PREFIX') . $id;
        return $this->redis->set($id, $data, $this->expire);
    }
    /**
     * 销毁
     * @param string $id
     */
    public function destroy($id) {
        $id = C('SESSION_PREFIX') . $id;
        $this->redis->delete($id);
    }
    /**
     * 垃圾回收
     * @param type $maxLifeTime
     * @return boolean
     */
    public function gc($maxLifeTime) {
        return true;
    }
}

到了这里就完成了。非常的简单是不是~~。

如果有使用到redis auth认证的话可以看这篇文章

http://www.cnblogs.com/lizhaoyao/p/6060794.html

他说的redis 方法路径在THINK/CACHE/DRIVER下 可以看到Redis.class.PHP

nickname
content