尝试在laravel中获取Redis键的值
我使用Redis作为我在laravel的缓存 在我的代码库中,我有一段代码,它设置了如下缓存值:尝试在laravel中获取Redis键的值,laravel,caching,redis,Laravel,Caching,Redis,我使用Redis作为我在laravel的缓存 在我的代码库中,我有一段代码,它设置了如下缓存值: $key = 'track:' . $user->id ...; // this value comes out as 'track:2697:08169' Cache::put($key, $value, $expiry); 所以在这一点上,关键是“track:2697:08169”,值是10,如果我运行Cache::get('track:2697:08169'),我自然会得到10 我一直
$key = 'track:' . $user->id ...; // this value comes out as 'track:2697:08169'
Cache::put($key, $value, $expiry);
所以在这一点上,关键是“track:2697:08169”
,值是10
,如果我运行Cache::get('track:2697:08169')
,我自然会得到10
我一直在尝试深入研究内部结构,原因我将不详细介绍,但我试图找到缓存中的所有键,Redis::connection('cache')->keys('*')
,而这个特定的键在列表中显示为myapi\u数据库\u myapi\u缓存:track:2697:08169
。我做了一些研究,发现缓存
门面在这些场景中使用了前缀,这对我来说是有意义的
当然,如果这是Redis的关键,那么我应该能够做到:Redis::connection('cache')->get('myapi_database_myapi_cache:track:2697:08169')代码>
但这并没有给我任何东西。只是一片空白
为什么我可以通过Cache::facade访问该值,而不是通过Redis直接使用前缀键访问?如何访问此密钥的值?还有,有什么办法可以访问这把钥匙的有效期吗?我胡思乱想了一下,找到了答案。我在我的问题中遗漏了一些重要信息,我认为这不相关,对此表示抱歉
我说我的钥匙Cache::get('track:2697:08169')
变成了'myapi\u Cache:track:2697:08169'
,但那不是真的——它变成了'myapi\u数据库\u myapi\u Cache:track:2697:08169'
,这就是我问题的根源:
当我在做Redis::connection('cache')->get('myapi_database_myapi_cache:track:2697:08169')代码>它不工作,当我在做Redis::connection('cache')->get('track:2697:08169')代码>它也不起作用,但我到处玩,发现Redis::connection('cache')->get('myapi_cache:track:2697:08169')代码>确实有效
一旦我通过删除前缀的这一部分(而不是myapi\u缓存
前缀)来更改密钥,这也起了作用:$ttl=Redis::connection('cache')->ttl($rediskey)
检查redis cli,例如,redis cli获取myapi\u缓存:track:2697:08169
@apokryfos我找到了它