Laravel使用redis存储session

水来我在漩涡中等你 火来我在灰烬中等你
默认情况下,Redis 服务会提供 16 个数据库,Laravel 使用数据库 0 作为缓存和 Session 的存储。 在使用的过程中觉得这个默认的设置挺不合理,因为当你在执行命令`php artisan cache:clear` 的时候,会把 Session 也连带清除了,导致所有用户需要重新登录。

配置 Session Redis 数据库

修改 config/database.php,在 redis 选项内增加 session 选项,并把 database 修改为 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'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,
],
],

指定 Session 使用数据库

修改 config/session.php

1
'connection' => 'session',

开始使用

修改 .env 文件的 SESSION_DRIVER 选项为 redis,开始应用上。

1
SESSION_DRIVER=redis