当前位置: 首页 > 面试题库 >

Redis通过字段值查找哈希

郭德惠
2023-03-14
问题内容

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

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

您可以通过了解键值来检索此值,但是我想知道有什么方法可以检索field2中所有具有“ World”的哈希值?


问题答案:

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

希望您能明白。



 类似资料:
  • 问题内容: 示例:存储在索引中的文档表示测试分数和有关每个测试的元数据。 我需要能够过滤掉除最低分数以外的所有分数,并为每个应试者返回与该测试相关的元数据。所以我的预期结果是: 我现在看到的唯一方法是,首先通过用户使用嵌套的最小聚合来进行术语聚合,以获得最低分。 然后,我必须获取该查询的结果,并对每个用户进行过滤查询,然后根据最低得分值进行过滤,以获取其余的元数据。Yu 我想知道是否有一种方法可以

  • 问题内容: 我在redis中有一个hach集,如下所示。 如果我叫hgetall abcd,它将为我提供哈希中的所有字段。我的目标是仅获取以“ rec.number”开头的哈希集的那些字段。当我打电话喜欢 它给我的结果像 有没有一种方法可以只检索那些以我期望的模式开头的键的数据?我只想检索那些键,因为我的数据集包含许多其他不相关的字段。 问题答案: HMGET在字段名称中不支持通配符。您可以为此使

  • 我试图制作一个方法,获取封闭实例中的任何字段,对于一对2D坐标(其字段名以“X”结尾)的任何“X”组件具有整数值。 但我在编译器中得到的只是: 方法将这样使用: 我做错了什么?

  • 问题内容: 用红色表示正在使用哈希,我需要存储具有多个字段和值的哈希键。我尝试如下: 输出为: 我只得到一个价值。如何获取哈希键中的所有字段和值?如果我错了,请帮助我,让我获取代码。谢谢。 问题答案: 您获得一个值是因为您覆盖了先前的值。 这会将Id,ReqNo添加到Table1哈希对象。 这将覆盖Table1哈希对象的Id和ReqNo。此时,哈希中只有两个字段。 实际上,您的问题来自您试图将关系

  • 我有一个csv,它具有以下结构: