laravel核心PHP开发

Laravel 下配置 Redis 让缓存、Session 各自

2016-12-09  本文已影响136人  王宝花

为什么要这样做?


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

Session 存储的其他选择:


上面的总结可以看来,Redis 在配置好多数据库的情况下,还是最好的 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

转载自:https://laravel-china.org/topics/2466

上一篇 下一篇

猜你喜欢

热点阅读