为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 中使用缓存外观时未显示 Redis 键

在 Laravel 中使用缓存外观时未显示 Redis 键

PHP
白板的微信 2021-08-21 13:26:57
我正在使用 Laravel Cache 外观,而CACHE_DRIVER=redis. 所有数据都成功保存在Redis中,但是当我使用redis-cli和运行keys*时没有密钥!使用该命令时,flushall in redis-cli它会再次从数据库加载数据,这意味着密钥已经存储在 Redis 中。
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

Redis 有 16 个数据库索引为 0 - 15。默认的数据库索引是0,所以当你运行 redis 命令而不指定数据库索引时,你只是针对数据库索引运行命令0。但是,从 Laravel 5.7 开始,Laravel 将所有缓存数据存储在数据库 index 中1。


为了查看缓存数据库中的键,您需要查询 database 1。您可以使用-n命令行上的开关来指定数据库索引,也可以select在 redis 提示符下使用该命令来更改活动数据库。


redis-cli -n 1 keys "*"


#> redis-cli

127.0.0.1:6379> select 1

127.0.0.1:6379[1]> keys *


查看完整回答
反对 回复 2021-08-21
?
慕容708150

TA贡献1831条经验 获得超4个赞

更新

这可能与 database.php 配置文件中 redis 块中的 Laravel 缓存前缀有关。看这里

有关其他详细信息,请参阅答案。

以前的答案。

我遇到了同样的问题,我尝试了接受的答案。,但是不同的数据库不是问题。

我能够使用scan找到丢失的密钥,就像这样Redis::scan('*')。为什么使用Redis::keys('*')不返回密钥,仍然是一个谜。

(注意只有使用 Python 创建的 key:values 没有返回keys,使用 Laravel 创建的返回。)


查看完整回答
反对 回复 2021-08-21
  • 2 回答
  • 0 关注
  • 211 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信