Hash REDIS:查看“下的所有内容”;“字段”;
解释起来相当复杂 我想要的是有一个命令,将字段作为参数,并显示所有键和值在这个领域 我查阅了REDIS文档,找到了HGETALL和HMGET,但这两个命令不满足我的需要 HGETALL在参数中询问键,并显示所有字段及其值。 示例如下: HMGET接受参数键和附加到它的字段,并显示它们的值。示例如下: 也有HKEYS,但也有不满足我要求的 如果没有非常精确的命令,我想知道如何编写代码,以便提供接近我希望的内容,如果可能的话Hash REDIS:查看“下的所有内容”;“字段”;,hash,redis,Hash,Redis,解释起来相当复杂 我想要的是有一个命令,将字段作为参数,并显示所有键和值在这个领域 我查阅了REDIS文档,找到了HGETALL和HMGET,但这两个命令不满足我的需要 HGETALL在参数中询问键,并显示所有字段及其值。 示例如下: HMGET接受参数键和附加到它的字段,并显示它们的值。示例如下: 也有HKEYS,但也有不满足我要求的 如果没有非常精确的命令,我想知道如何编写代码,以便提供接近我希望的内容,如果可能的话 提前感谢您的回答。如果我理解得很好,您有几个哈希,每个哈希都有自己的密
提前感谢您的回答。如果我理解得很好,您有几个哈希,每个哈希都有自己的密钥。然后在这些散列中有一个字段,例如字段“name”。现在,您需要询问类似“告诉我在哪些键中存储了name属性以及值是什么” 如果是这样的话,在redis中有一些选项可以做到这一点,但这并不是存储信息的最佳方式 一种可能的方法是对存储字段名的所有键使用公共模式。例如“记录:a”,“记录:b”。。。然后,您可以发出KEYS命令,如KEYS record:这样您就可以获得散列的所有键。(注意扫描效率更高) 接下来,您需要发出几个命令,如hget key、name。您可以使用多线程,以便同时执行所有命令 通过该过程,您将在第一步中获得所有键,在第二步中获得所有值。但我不认为这是最佳的
如果我知道你的用例,也许我可以帮你更多的忙。我想你能理解,但我不是英国人,即使我在网站上翻译(谷歌翻译),我也不完全理解你的答案。对不起 我试过钥匙。我有哈希表中使用的字段列表。我有一个主意,它是do
bla=KEYS*
,do ablas.each do | bla |
,在每个。。。do,do@bla=hget(…,'bla')。或者类似的事情。但这不可能,我没有钥匙
事实上,我正试图用RubyonRails中的Redis替换sqlite3。在控制器中,索引显示所有值在散列中
更清楚地说:
def index
@counters = Counter.all
end
我想用这样的代码替换此代码:
def index
@counters = REDIS.hget
end
您是否试图从许多散列中获取特定字段?是的,我试图获取特定字段上的所有数据(键和值)。从很多散列中可以看出,是的,这就是我写作的原因(注释扫描更有效)。当然,只有当您使用redis 2.8或更高版本时,SCAN才更有效,但它是增量的:它不会长时间阻止redis实例。无论如何,我会排除任何基于扫描键的解决方案。如果OP需要快速访问字段中的数据,则需要显式索引。是的,我所说的“更高效”的意思是,无论您的键空间有多大,每次运行它都会得到一个可预测的时间,因此不会减慢实例的速度。我也同意,正如我在回答中所说的那样,这不是最优的。一旦我们了解了这个用例,我们就可以更好地帮助用户创建二级索引。我想我会在8小时内回答。在评论中,我无法解释。