在 Redis 中使用 json 与字符串值

问题描述 投票:0回答:1

我正在评估 Redis,以了解 json 与字符串之间哪些提供了更好的检索性能。作为 POC,我在 Redis 中将下面的 json 设置为 json 和字符串值,并注意到 JSON 值的大小大于字符串 - 请参阅随附的屏幕截图。

json值大小= 239B 字符串值大小 = 136B 对于这个 POC,我在我的 mac 上使用了 redis-stack-server。

根据我的观察,我有三个问题。

  • 为什么 JSON 值的大小大于 String
  • 为什么 JSON 值的检索比 String 慢
  • Redis 的最佳替代品是什么,它可以为我提供更好的 API 缓存层性能
{key:"HbaJsv"location:339secret:"nD9pVeqZIxAIPsY"delta:6}

String values screenshot
Json values screenshot

这是我使用的代码示例。

import redis

client = redis.Redis(host='localhost', port=6677)
doc = {key:"HbaJsv"location:339secret:"nD9pVeqZIxAIPsY"delta:6}
client.json().set("some_hash1", '$', doc)
client.set("some_hash2", json.dumps(doc))
redis node-redis redis-stack-server
1个回答
0
投票

如果您只想通过密钥检索 JSON - 您可以使用字符串。

但是在 Redis Stack 上,您还可以对 JSON 文档执行 JSONpath 查询,以及 indexquery JSON 文档。

当然,为了支持此类操作,Redis 存储 JSON 文档的方式与简单字符串不同。

© www.soinside.com 2019 - 2024. All rights reserved.