在Redis中使用json vs字符串值

swvgeqrz  于 8个月前  发布在  Redis
关注(0)|答案(1)|浏览(69)

我正在评估redis,以了解json与string之间的哪些方面提供了更好的检索性能。作为POC,我在redis中将json设置为json和字符串值,并注意到JSON值的大小大于字符串-请参见随附的屏幕截图。
json value size = 239 B string value size = 136 B对于这个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))
0mkxixxg

0mkxixxg1#

如果你只想通过关键字检索JSON-你可以使用字符串。
但是在Redis Stack上,您还可以在JSON文档上执行JSONpath queries,以及indexquery JSON文档。
当然,为了支持这样的操作,Redis存储JSON文档的方式与简单的字符串不同。

相关问题