我正在评估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))
1条答案
按热度按时间0mkxixxg1#
如果你只想通过关键字检索JSON-你可以使用字符串。
但是在Redis Stack上,您还可以在JSON文档上执行JSONpath queries,以及index和query JSON文档。
当然,为了支持这样的操作,Redis存储JSON文档的方式与简单的字符串不同。