我正在评估 Redis,以了解 json 与字符串之间哪些提供了更好的检索性能。作为 POC,我在 Redis 中将下面的 json 设置为 json 和字符串值,并注意到 JSON 值的大小大于字符串 - 请参阅随附的屏幕截图。
json值大小= 239B 字符串值大小 = 136B 对于这个 POC,我在我的 mac 上使用了 redis-stack-server。
根据我的观察,我有三个问题。
{key:"HbaJsv"location:339secret:"nD9pVeqZIxAIPsY"delta:6}
这是我使用的代码示例。
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))
如果您只想通过密钥检索 JSON - 您可以使用字符串。
但是在 Redis Stack 上,您还可以对 JSON 文档执行 JSONpath 查询,以及 index 和 query JSON 文档。
当然,为了支持此类操作,Redis 存储 JSON 文档的方式与简单字符串不同。