tp框架利用redis儲存session
阿新 • • 發佈:2021-01-18
因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');