我正在尝试通过这样做在
redis
中使用Laravel
缓存我的结果
$result = Cache::remember('orders_cache', 10, function () use ($orders) {
return $orders;
});
return $result;
当我进入 Redis-Cli 并执行
KEYS *
操作时,我没有看到 orders_cache
键。我已将 cache_driver
中的 redis
设置为 .env
,并且还运行了命令 php artisan config:cache
。我还使用 Composer 安装了 predis 包。
我的开发环境是:
对此的任何帮助将不胜感激。 TIA
Redis 实例支持 16 个逻辑数据库,编号从 0 到 15,默认通过 runnig
redis-cli
连接到数据库 0
。您可以利用 Redis INFO 命令来显示包含密钥的数据库以及其他更多信息,例如:
db0:keys=1,expires=0,avg_ttl=0
db1:keys=2,expires=2,avg_ttl=2462100
在可能的情况下,我有2个数据库。现在,您可以在连接后使用
select
命令更改正在使用的数据库。例如:
select 1
如果切换成功会返回
OK
。现在你可以看到你的 Laravel 密钥了。
运行
redis-cli monitor
并检查数据库编号和写入的密钥。
在 Laravel 的最新版本 (8.^) 中,它在 laravel_database 前面添加了 Redis 键。
例如:laravel_database_{$YOUR_KEY}。
要查看哪些键可用,请运行:
KEYS *
我已经使用@m.nikzad答案的帮助解决了这个问题,但我不知道之后该怎么做,所以我设法这样做:
所以,实用:
redis-cli -h <redis_host> monitor
,其中<redis_host>
是您的redis主机,您将在第二行(ig)中看到类似SELECT n
的内容,其中n
是数据库编号。redis-cli -h <redis_host> -n <database_number>
,其中<redis_host>
是您的redis主机,<database_number>
是我们在上一步中刚刚获得的数据库编号。如果 redis 端口与默认端口不同,请确保在命令中包含 -p <redis_port>
。KEYS *
、KEYS <pattern>
或 GET <key>
。资源:
我遇到了同样的问题,我在这里找到了解决方案。
我制作了一条针对此功能的路线
公共函数index() { 缓存::put('联系人', '03238201322'); $users = Cache::remember('active_users', 60, function () { return User::where('status', 1)->get(); }); dd($用户); }
其次,我在
redis-cli
终端命令中运行此命令:monitor
然后我点击了针对此功能的路线。
所有活动都显示在我的终端中,选择
database
来存储数据,vairables
名称用作键,然后我注意到redis
选择database 1
来存储变量,并且它始终使用laravel_database_
作为每个变量的前缀,就像我的键名是 name
那么它存储 laravel_database_name
然后我在
redis-cli
命令中运行命令:SELECT 1
。为我选择数据库 1。
然后我运行命令:
KEYS *
然后它显示我通过 laravel 缓存存储的所有变量。