如何获取 Redis JSON 数据

How to GET Redis JSON data

不幸的是,我使用的是过时的 Redis,因此它不支持新的 JSON 命令,所以我正在执行 JSON.Stringify(object) 和 redis SET 像这样存储密钥:

"{\"id\":\"123\",\"person\":\"Joe\""}"

我可以执行什么 Redis 命令来根据 id 获取此密钥?

我试着玩弄

redis-cli get id:123

但这不起作用。有什么想法吗?

Redis SET commandkeyvalue 相关联。那个键和值是什么取决于你; Redis 不会以任何方式解释它们,也不会从单个对象中提取它们,您将它们作为两个参数传递。

例如:

  • SET hello world 将键“hello”与值“world”相关联
  • SET "address-123" "123 Blah St, Nashville, TN 12345" 将键 "address-123" 与值 "123 Blah St, Nashville, TN 12345"
  • 相关联
  • SET "6b091891-58eb-4563-9f9b-8ac893cf4725" "{\"id\":\"6b091891-58eb-4563-9f9b-8ac893cf4725\",\"address\":\"123 Blah St, Nashville, TN 12345\""}" 将键 "6b091891-58eb-4563-9f9b-8ac893cf4725" 与值 "{\"id\":\"6b091891-58eb-4563-9f9b-8ac893cf4725\",\"address\":\"123 Blah St, Nashville, TN 12345\""}"
  • 相关联

然后 GET command 根据 key 检索 value。因此,给定上述 SET 命令:

  • GET hello 将 return "world"
  • GET "address-123" 将 return "123 Blah St, Nashville, TN 12345"
  • GET "6b091891-58eb-4563-9f9b-8ac893cf4725" 将 return "{\"id\":\"6b091891-58eb-4563-9f9b-8ac893cf4725\",\"address\":\"123 Blah St, Nashville, TN 12345\""}"

使用整个对象作为键没有多大意义,因为为了再次查找它,您需要完全相同的对象 - 在这种情况下,没有什么可查找的。