Laravel 下配置 Redis 让缓存、Session 各自使用不同的 Redis 数据库
128

为什么要这样做?

默认情况下,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

如果不会就大功告成了。

dancer::dancer::dancer::dancer: :dancers::dancers::dancers::dancers:


Practice makes perfect.

本帖已被设为精华帖!
本帖由 Summer 于 2年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 17

怒赞,还不知道memcached 有这个坑呢

2年前

:+1:

2年前

FatalErrorException in Database.php line 62:
Class 'Predis\Client' not found

出现了一个问题。。查看了composer文件和app.config都没有问题。。

2年前
萧晔离

学习了,我的是几个laravel项目共享的session和cache ,清理cache的时候的确很不方便

2年前

@Gabriel composer require predis/predis

2年前

@orvice 已解决,谢谢。

2年前
Destiny

@Summer 帅得一.....

2年前
wujunze

:thumbsup:

2年前
ADKi

mark

1年前

:+1: 学习了

1年前
Mantis

@512817655 我这可以啊。

file

1年前

请问.env在哪

1年前
沈益飞

@Summer 前几天在弄事件广播和队列的时候,发现当同时用到 redis 作为驱动器的时候会有冲突,是不是也可以用这个方式解决?
我参考了下面网页资料,但是好像没有成功

https://laracasts.com/discuss/channels/laravel/any-use-redis-as-queue-and-broadcast-driver-same-time

1年前

mark

马克

1年前

按照您这样的配置,为什么session的值存储不到redis里面,是不是哪里还需要配置?

7个月前
Soldoros

正好需要,哈哈~~~

一搜一个准儿

4个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!