我尝试在Laravel
中使用redis
缓存我的结果,方法是这样做
$result = Cache::remember('orders_cache', 10, function () use ($orders) {
return $orders;
});
return $result;
当我进入Redis-Cli并执行KEYS *
时,我没有看到orders_cache
键。我已经在我的.env
中将cache_driver
设置为redis
,我还运行了命令php artisan config:cache
。我也安装了predis包使用composer以及。
我的开发环境是:
- PHP7.4
- Ubuntu 20
- Laravel 6.0
- Redis 5.0.7
任何帮助在这方面将不胜感激。TIA
5条答案
按热度按时间a14dhokn1#
Redis示例支持16个逻辑数据库,编号从0到15,默认运行
redis-cli
连接到数据库0
。你可以利用Redis INFO命令来显示包含键的数据库,以及其他信息,如:在可能的情况下,我有2个数据库。现在你可以在连接后用
select
命令改变你正在使用的数据库。例如:如果切换成功,则返回
OK
。现在你可以看到你的Laravel键了。w51jfk4q2#
运行
redis-cli monitor
并检查数据库号和写入的密钥。nxagd54h3#
在最近的Laravel版本(8.^)中,它在laravel_database前添加了Redis密钥。
例如:laravel_database_{$YOUR_KEY}。
要查看哪些键可用,请运行:
KEYS *
wz3gfoph4#
我遇到了一个类似的问题,当通过Laravel使用
Redis::keys('*')
查询时,我通过Laravel保存的密钥被返回,但是通过Python保存的密钥没有。我仍然不确定为什么(并且单独的数据库,如所指出的here不是原因)。有趣的是,我能够看到通过Python使用
Redis::scan('*')
(docs)保存的密钥。即使scan
返回了密钥,我仍然无法通过Redis::get('key_name')
获得它。我需要做进一步的研究,至于为什么会这样,但这可能是有用的,在寻找您丢失的关键。oprakyz75#
我已经使用@m.nikzad answer的帮助解决了这个问题,但我不知道之后该怎么办,所以我设法这样做:
1.监控redis以确定数据、数据库等。
1.连接到数据库编号。
1.检索你想要的钥匙或所有的钥匙,但要小心检索一个巨大的数据库上的所有钥匙!
所以,实际:
1.监测:
redis-cli -h <redis_host> monitor
,其中<redis_host>
是您的redis主机,您将在第二行(IG)中获得类似SELECT n
的内容,其中n
是数据库编号。1.现在你知道了数据库的编号,让我们连接到它:
redis-cli -h <redis_host> -n <database_number>
,其中<redis_host>
是您的redis主机,<database_number>
是我们在上一步中刚刚获得的数据库编号。如果redis端口与默认端口不同,请确保在命令中包含-p <redis_port>
。1.检索:根据需要使用
KEYS *
、KEYS <pattern>
或GET <key>
。资源: