我用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_database_myapi_cache:track:2697:08169
。我做了一点研究,发现cache
门面为这些场景使用了前缀,这对我来说是有意义的。
所以很自然,如果这是Redis的关键字,那么我应该可以这样做:Redis::Connection('cache')->Get('myapi_database_myapi_cache:track:2697:08169');
但这并不能给我任何帮助。只是一片空白。
为什么我可以通过cache::facade访问值,而不能通过Redis直接使用前缀键?如何访问此键的值?还有,有没有办法访问这个密钥的过期?
我胡搅蛮缠地想出了答案。我在我的问题中遗漏了一些重要的信息,我不认为这是相关的,对不起。
我说我的密钥cache::get('track:2697:08169')
被转换为'myapi_cache:track:2697:08169'
,但这不是真的--它被转换为'myapi_database_myapi_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_cache
前缀来更改密钥时,这也起作用了:$ttl=redis::connection('cache')->ttl($rediskey);
我想从JSON文件中检索所有键值。例如: 我想得到: 我有一个函数,它以可观察的方式返回我的JSON的内容: 之后,使用重新格式化数据,以仅获取具有函数的键: 我的问题是,我只得到了我所说的JSON级别(data.items[0])中的密钥,而没有得到升序或后代。 当然,我可以创建多个请求,但它要求提前知道JSON的结构,我想要的是使其通用。。。 无论JSON的结构如何,我如何才能拥有一个包含所有
问题内容: 如何使用排序集从Redis获取多个键的值? 这将有两个用户。 如何在一个查询中检索具有键“ David”和“ Linda”的用户? 问题答案: 无需在Redis中引入新命令的方法有多种。 例如,您可以使用感兴趣的名称填充临时集,然后计算该临时集与zset之间的交集: 使用流水线操作,只会产生一次往返,并且您可以在tmp中填充任意数量的输入参数。 使用Redis 2.6,您还可以将这些行
我知道,为了获得Redis中所有键的列表,我必须使用,但是有没有一种方法可以将所有键及其值一起输出? 几分钟的搜索没有产生任何结果。 另外,非常感谢您的回答,但我正在寻找一个本地解决方案。我可以自己编写一个函数,遍历的所有输出。
问题内容: 我目前正在与Redis一起玩,我有几个问题。是否可以从键数组中获取值? 例: 当我返回时。我可以遍历此列表并获得用户:1,获得用户:2。但这感觉不对,有没有办法让所有与会者的信息一目了然? 在rails中,我会做这样的事情: 但是在redis中我不能,因为它返回键,而不是存储在该键上的实际对象。 谢谢 :) 问题答案: 在项目上循环并同步访问每个元素不是很有效。使用Redis 2.4,
问题内容: 我在我的socket.io聊天应用程序的Redis存储中存储了用户名/ SocketID对。 当用户断开连接时,我需要从Redis存储中删除用户名/ socketID对。我已经看到了如何从键中获取值,但从未从值中获取键。可能吗?或无论哪种方式,我怎么能只从值中删除键/值对。这是我的代码 用于在连接上添加存储 对于断开连接,客户端将不知道何时断开连接,可能是由于Internet连接断开而
问题内容: 我将数据存储在Redis中。我将它存储在GUID,createday和它的大小中。 因此,我定义以下内容: 我希望查看我的数据库中的所有文件。因此,我尝试以下操作: 但是res是。我该怎么做? 问题答案: 返回存储在key处的哈希的所有字段和值,您不能指定掩码: http //redis.io/commands/hgetall 您可以调用获取符合条件的所有键的列表,然后循环获取所有值。