如何从Redis哈希中选择特定键

时间:2019-02-06 16:00:24

标签: redis

我已创建Redis哈希并将其存储在条目下方-101- 104是哈希键

HMSET 101  field1 101 field2 yy field3 bb field4 300
HMSET 102  field1 102 field2 xx field3 bb field4 300
HMSET 103  field1 103 field2 yy field3 bb field4 300
HMSET 104  field1 104 field2 xx field3 bb field4 300

我想检索所有具有field2 = xx的记录(这类似于SQL中的where子句)

我认为应该在field2上创建二级索引,但不确定如何编写。

2 个答案:

答案 0 :(得分:0)

Redis不提供此类功能。

此外,Redis不允许创建任何索引。

或者,它提供了各种数据结构供您根据访问需求保存数据,例如:列表,哈希图,集合,排序集合等

对于您的情况,您必须手动遍历所有记录以获得所需的结果。

答案 1 :(得分:0)

我认为您应该为键和值创建一个反向索引。即

 "value" ---> {{fieldName, HSETNAME}}
 Ex : xx --> {{field2,101},{field3,104}}

在正确的键,值上进行迭代,您可以获得HMSET名称,然后可以从中检索所有记录。

仅仅是您必须根据用例来操纵键和值。 您可以在这里找到更多信息:How do you search for keys with a value? For example get all KEYS where the value is "somevalue"