(转 +自己总结)thinkphp3.2集成redis (session存入redis驱动

1、配置

/* session */

'SESSION_AUTO_START' => true,
'SESSION_TYPE' => 'Redis',
 // redis 
'REDIS_HOST' => 'xxx.xxx.xxx.xxx',
'REDIS_PORT' => '6379',
'REDIS_PASSWORD' => 'xxxxxxxx',//'auth',

2、放文件

<?php
/**
 * Created by PhpStorm.
 * User: hunk
 * Date: 2016-03-02
 * Time: 17:33
 */

namespace Think\Session\Driver;

class Redis
{
    protected $lifeTime = 3600;
    protected $sessionName = '';
    protected $handle = null;

    /**
     * 开启连接
     * @param $savePath
     * @param $sessName
     * @return bool
     */
    public function open($savePath, $sessName)
    {
        $this->lifeTime = C('SESSION_EXPIRE') ? C('SESSION_EXPIRE') : $this->lifeTime;
        if (is_resource($this->handle)) {
            return true;
        }
        $host = C('REDIS_HOST') ?: '127.0.0.1';
        $port = C('REDIS_PORT') ?: '6379';
        $auth = C('REDIS_PASSWORD') ?: '';
        $timeout = C('SESSION_TIMEOUT') ?: 1;
        $redis = new \Redis();
        $redis->connect($host, $port, $timeout);
        $redis->auth($auth);
        if (!$redis) {
            return false;
        }
        $this->handle = $redis;
        return true;
    }

    /**
     * 关闭连接
     * @return bool
     */
    public function close()
    {
        $this->gc(ini_get('session.gc_maxlifetime'));
        $this->handle->close();
        $this->handle = null;
        return true;
    }

    /**
     * 读取session
     * @param $sessID
     * @return mixed
     */
    public function read($sessID)
    {
        return $this->handle->get($sessID);
    }

    /**
     * 写入session
     * @param $sessID
     * @param $sessData
     * @return mixed
     */
    public function write($sessID, $sessData)
    {
        return $this->handle->setex($sessID, $this->lifeTime, $sessData);
    }

    /**
     * 注销session
     * @param $sessID
     * @return bool
     */
    public function destroy($sessID)
    {
        return $this->handler->del($sessID)>=1?true:false;
    }

    /**
     * 垃圾回收
     * @param $sessMaxLifeTime
     * @return bool
     */
    public function gc($sessMaxLifeTime)
    {
        return true;
    }


}

3、正常很用session

$data = $_SESSION['hr_sas_access_token'];
var_dump($data->expire_time);
var_dump($data->access_token);
	
	
	
session('names','1234567');  //设置session
dump(session());
dump(session_id());

4、验证

[root@localhost ~]# /home/redis-3.0.7/src/redis-cli
127.0.0.1:6379> auth 123456789
OK
127.0.0.1:6379> keys *
1) "sess_5i797nkgenpbhjc2a0tf7mqod6"
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> get "sess_5i797nkgenpbhjc2a0tf7mqod6"
"sess_|a:1:{s:5:\"names\";s:16:\"123456\";}"
127.0.0.1:6379>

flushdb  清空redis

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值