tp框架利用redis存储session

因tp每个版本不一致,只说大概流程:

1.config文件中将sesion type改成redis

'session' => [
  'id'  => '',
  // SESSION_ID的提交变量,解决flash上传跨域
  // 'var_session_id' => '',
  // SESSION 前缀
  'prefix'  => 'think',
  // 驱动方式 支持redis memcache memcached
  'type'  => 'redis',
  // 是否自动开启 SESSION
  'auto_start'     => true,
],

2.config文件中增加redis连接信息

'session_redis_config'  =>  [
    'host'         => '27.0.0.1', // redis主机
    'port'         => 6379, // redis端口
    'password'     => '', // 密码
    'select'       => 11, // 操作库
    'expire'       => 3600, // 有效期(秒)
    'timeout'      => 30, // 超时时间(秒)
    'persistent'   => true, // 是否长连接
    'session_name' => '', // sessionkey前缀
  ],

3.redis session driver类文件引入config文件中的session_redis_config配置

  编辑thinkphp/library/think/session/driver/Redis.php

protected $handler = null;
    //将$config属性赋值注释
    /*protected $config  = [
        'host'         => '127.0.0.1', // redis主机
        'port'         => 6379, // redis端口
        'password'     => '', // 密码
        'select'       => 11, // 操作库
        'expire'       => 3600, // 有效期(秒)
        'timeout'      => 30, // 超时时间(秒)
        'persistent'   => true, // 是否长连接
        'session_name' => '', // sessionkey前缀
    ];*/

    public function __construct($config = [])
    {
        //改变获取redis配置文件方式
        //$this->config = array_merge($this->config, $config);
        $this->config = array_merge(config('session_redis_config'), $config);
    }

4.设置、获取session信息和之前一样无变化,test

use think\Session;
Session::set("test", "TEST");
Session::get('test');

 

posted @ 2021-01-18 09:27  事儿爸_董  阅读(365)  评论(0编辑  收藏  举报