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

我正在使用 Laravel Cache 外观,而CACHE_DRIVER=redis. 所有数据都成功保存在Redis中,但是当我使用redis-cli和运行keys*时没有密钥!

使用该命令时,flushall in redis-cli它会再次从数据库加载数据,这意味着密钥已经存储在 Redis 中。


白板的微信
浏览 212回答 2
2回答

翻翻过去那场雪

Redis 有 16 个数据库索引为 0 - 15。默认的数据库索引是0,所以当你运行 redis 命令而不指定数据库索引时,你只是针对数据库索引运行命令0。但是,从 Laravel 5.7 开始,Laravel 将所有缓存数据存储在数据库 index 中1。为了查看缓存数据库中的键,您需要查询 database 1。您可以使用-n命令行上的开关来指定数据库索引,也可以select在 redis 提示符下使用该命令来更改活动数据库。redis-cli -n 1 keys "*"或#> redis-cli127.0.0.1:6379> select 1127.0.0.1:6379[1]> keys *

慕容708150

更新这可能与 database.php 配置文件中 redis 块中的 Laravel 缓存前缀有关。看这里有关其他详细信息,请参阅此答案。以前的答案。我遇到了同样的问题,我尝试了接受的答案。,但是不同的数据库不是问题。我能够使用scan找到丢失的密钥,就像这样Redis::scan('*')。为什么使用Redis::keys('*')不返回密钥,仍然是一个谜。(注意只有使用 Python 创建的 key:values 没有返回keys,使用 Laravel 创建的返回。)
打开App,查看更多内容
随时随地看视频慕课网APP