為什么要這樣做?
默認情況下,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
如果不會就大功告成了。