Redis 从值中获取键

标签 redis key-value nosql

ID 是唯一的,我将其用作键,其余作为 Redis 数据库中的哈希值。我正在寻找一个查询,如果我给出一个特定的城市名称,它会返回我的 ID 列表。例如,如果我问,给我名为 SPRINGFIELD 的城市的所有 ID,它应该返回 01103 和 01104。


{
  "_id": "01103",
  "city": "SPRINGFIELD",
  "loc": [
    -72.588735,
    42.1029
  ],
  "pop": 2323,
  "state": "MA"
}

{
  "_id": "01104",
  "city": "SPRINGFIELD",
  "loc": [
    -72.577769,
    42.128848
  ],
  "pop": 22115,
  "state": "MA"
}

{
  "_id": "01106",
  "city": "LONGMEADOW",
  "loc": [
    -72.5676,
    42.050658
  ],
  "pop": 15688,
  "state": "MA"
}

最佳答案

您没有指定您在 Redis 中使用什么键来映射到城市的哈希结构,所以我假设您使用 ID,因为您已经说过它是唯一的。

要查询与特定名称匹配的城市,您需要构建和维护支持查询的二级索引结构。执行此操作的一种方法是使用 SET 数据结构,并将城市名称用作指向共享该城市名称的一组 ID 的键。

关于Redis 从值中获取键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43448910/

相关文章:

node.js - Node Redis Emit/On 而不是 Pub/Sub

java - spring-boot redis : How to invalidate all sessions of a user?

python - 通过匹配值python删除键值对

firebase - 如何在 Firebase Cloud Firestore 中执行查询

firebase - 用于获取用户好友列表的 Firestore 模型

java - 使用 Redis 运行 Storm 时出错 : java. lang.NoClassDefFoundError: Lredis/clients/jedis/Jedis

ruby - 如何检查 sidekiq 连接到的 redis 端口和实例?

macos - 使用 swift 读取 CFDictionary 中的值

java - 如何使用 Spring 将嵌套键值对从属性文件加载到 Java 对象中?

ios - 尝试从 DynamoDB (Swift) 读取时出现 DynamoDBObjectModel 错误