Laravel 下配置 Redis 讓緩存、Session 各自使用不同的 Redis 數據庫


為什么要這樣做?

默認情況下,Redis 服務會提供 16 個數據庫,Laravel 使用數據庫 0 (請見 Redis 文檔)作為緩存和 Session 的存儲。

在執行命令 php artisan cache:clear 清除緩存時,會把 Session 也連帶清除了,可以通過以下設置來避免這個問題。

 

開始配置

我們的目的是讓緩存,也就是默認的 Redis 存儲到 0 號數據庫,Session 存儲在 1 號數據庫。

 

1. 配置 Session Redis 數據庫

修改 config/database.php,在 redis 選項內增加 session 選項,並把 database 修改為 1:

'redis' => [

   'cluster' => false,

   'default' => [
       'host'     => env('REDIS_HOST', 'localhost'),
       'password' => env('REDIS_PASSWORD', null),
       'port'     => env('REDIS_PORT', 6379),
       'database' => 0,
   ],

   'session' => [
         'host'     => env('REDIS_HOST', 'localhost'),
         'password' => env('REDIS_PASSWORD', null),
         'port'     => env('REDIS_PORT', 6379),
         'database' => 1,
   ],
],

 

 

2. 指定 Session 使用數據庫

修改 config/session.php ,把下面這一行:

'connection' => null,

改為:

'connection' => 'session',
 

3. 開始使用

修改 .env 文件的 SESSION_DRIVER 選項為 redis,開始應用上。

SESSION_DRIVER=redis
 

4. 測試一下

執行以下命令后檢查下是否退出登錄:

php artisan cache:clear

如果不會就大功告成了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM