10

使用 Redis 创建“记录”时,您可以创建包含多个字段的哈希。例如:

HMSET myhash field1 "Hello" field2 "World"
HMSET myhash2 field1 "Goodbye" field2 "World"

您可以通过知道键值来检索它,但是我想知道有没有办法检索在 field2 中具有“世界”的所有散列?

4

2 回答 2

23

redis中没有索引,也没有实现SQL。这是一个键值存储。你提供一个键,它就会给你一个值。

也就是说,您可以通过自己维护二级索引来实现这一点。例如:

创建记录和索引条目

HMSET myhash field1 Hello field2 World
SADD field2_world myhash

更新记录,删除旧的索引条目,创建新的

SREM field2_world myhash
HMSET myhash field2 Mundo
SADD field2_mundo myhash

查找所有包含“世界”的记录field2

SMEMBERS field2_world

我希望你能明白。

于 2012-06-26T14:36:00.290 回答
0

对于下一位读者,SORT 命令可能有助于使用“BY 模式”参数

HMSET myhash field1 Hello field2 World
SORT myhash BY World

模式示例 (w3resource)

于 2021-01-12T16:09:56.583 回答