尝试在laravel中获取Redis键的值

尝试在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 我一直

我使用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

我一直在尝试深入研究内部结构,原因我将不详细介绍,但我试图找到缓存中的所有键,
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我找到了它