Laravel 下配置 Redis 让缓存、Session 各自使用不同的 Redis 数据库
程序员文章站
2022-06-13 08:23:32
为什么要这样做? 默认情况下,Redis 服务会提供 16 个数据库,Laravel 使用数据库 0 (请见 Redis 文档)作为缓存和 Session 的存储。 在执行命令 php artisan cache:clear 清除缓存时,会把 Session 也连带清除了,可以通过以下设置来避免这个 ......
为什么要这样做?
默认情况下,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
如果不会就大功告成了。
上一篇: NPOI 导出 excel 性能测试