Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nosql Redis通过字段值查找哈希_Nosql_Redis - Fatal编程技术网

Nosql Redis通过字段值查找哈希

Nosql Redis通过字段值查找哈希,nosql,redis,Nosql,Redis,当使用Redis创建“记录”时,您可以创建包含多个字段的哈希。例如: HMSET myhash field1 "Hello" field2 "World" HMSET myhash2 field1 "Goodbye" field2 "World" 你可以通过知道键值来检索它,但是我想知道的是,有没有任何方法可以检索字段2中包含“World”的所有哈希?redis中没有索引,并且它不实现SQL。这是一个键值存储。如果你提供一个键,它就会给你一个值 也就是说,您可以通过自己维护二级索引来实现这一点

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

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

你可以通过知道键值来检索它,但是我想知道的是,有没有任何方法可以检索字段2中包含“World”的所有哈希?

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

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

HMSET myhash field1 "Hello" field2 "World"
HMSET myhash2 field1 "Goodbye" field2 "World"
创建记录和索引项

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
我希望您能理解。

对于下一位读者,使用“按模式”参数可能会有所帮助


我用2个哈希值执行了答案中的确切命令,但它不起作用。你能再解释一下吗?@SHM:怎么没用?显示该会话的整个命令历史记录。有产出。