Laravel 下配置 Redis 让缓存、Session 各自使用不同的 Redis 数据库
2016-11-30 11:26
771 查看
默认情况下,Redis 服务会提供 16 个数据库,Laravel
使用数据库
文档)作为缓存和 Session 的存储。
在使用的过程中觉得这个默认的设置挺不合理,因为当你在执行命令
file - 存储在文件中,读取太频繁,磁盘存储比起内存存储速度没法比,为了方便,开发时可以随便玩一玩,生产环境不建议使用;
cookie - Session 里存放的是信息太多,Nginx 默认配置下配合 PHP-FPM,经常报 502,不建议使用;
database - 不建议存储在数据库中,因为读取太频繁,会拖累数据库服务器数据存储的业务,读取是内存缓存服务器的强项;
apc - 可用于小型程序缓存,不过不支持集群,所以也不建议使用;
array - 建议只用于单元测试中使用;
memcached - 专业内存缓存服务器,可惜只支持最大 30 天的缓存时间,请见 Laravel 会话使用 Memcached 踩到的坑,也就是说用户 30 天后就得重新登录,在我们的用例中,不适用;
上面的总结可以看来,Redis 在配置好多数据库的情况下,还是最好的 Session 存储方案。
我们的目的是让缓存,也就是默认的 Redis 存储到 0 号数据库,Session 存储在 1 号数据库。
修改
1:
修改
改为:
修改
redis,开始应用上。
执行以下命令后检查下是否退出登录:
如果不会就大功告成了。
使用数据库
0(请见 Redis
文档)作为缓存和 Session 的存储。
在使用的过程中觉得这个默认的设置挺不合理,因为当你在执行命令
PHP artisan cache:clear的时候,会把 Session 也连带清除了,导致所有用户需要重新登录。
Session 存储的其他选择:
file - 存储在文件中,读取太频繁,磁盘存储比起内存存储速度没法比,为了方便,开发时可以随便玩一玩,生产环境不建议使用;cookie - Session 里存放的是信息太多,Nginx 默认配置下配合 PHP-FPM,经常报 502,不建议使用;
database - 不建议存储在数据库中,因为读取太频繁,会拖累数据库服务器数据存储的业务,读取是内存缓存服务器的强项;
apc - 可用于小型程序缓存,不过不支持集群,所以也不建议使用;
array - 建议只用于单元测试中使用;
memcached - 专业内存缓存服务器,可惜只支持最大 30 天的缓存时间,请见 Laravel 会话使用 Memcached 踩到的坑,也就是说用户 30 天后就得重新登录,在我们的用例中,不适用;
上面的总结可以看来,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
如果不会就大功告成了。
相关文章推荐
- Laravel 下配置 Redis 让缓存、Session 各自使用不同的 Redis 数据库
- Laravel 下配置 Redis 让缓存、Session 各自使用不同的 Redis 数据库
- Laravel 下配置缓存、Session 使用不同的 Redis 数据库
- Laravel Redis和Session 存放在不同的数据库
- Spring-Session配置,底层数据库使用Redis或Mysql
- Spring-Session配置,底层数据库使用Redis或Mysql
- springboot项目使用redis数据库作缓存
- Spring Boot 与 Kotlin 使用Redis数据库的配置方法
- 高并发时,读文件、读SESSION、读缓存(Redis)和读数据库(Mysql)的查询效率哪家强?
- Laravel如何使用Redis共享Session
- Laravel5.5 session 的配置及使用示例讲解
- IT 缓存框架:足迹第二十三步ehcache、memcache、redis数据库的使用(什么是大项目常用的缓存处理方案)
- Python的Flask框架使用Redis做数据缓存的配置方法
- laravel使用Redis实现网站缓存读取的方法详解
- 使用redis服务器缓存数据库内容
- redis结合springboot设置不同缓存失效配置
- tmux多个session使用不同配置
- laravel 安装配置使用redis
- Asp.net Core中使用Redis 来保存Session, 读取配置文件
- 使用过滤器 配置jsp文件到缓存html 到redis