1. 程式人生 > 資料庫 >tp框架利用redis儲存session

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');