gpt4 book ai didi

json - 将对象保存在缓存中的最佳实践

转载 作者:可可西里 更新时间:2023-11-01 11:11:58 24 4
gpt4 key购买 nike

我将 Redis 用作缓存服务 (Key=>Value) @ AWS ElastiCache。

我想在缓存中保存一个包含嵌套对象的对象:

  • Object1 - 包含 Object2 的实例

我显然是在序列化我的对象——就此而言,让我们以 JSON 为例——所以我的序列化对象看起来像这样:

{
"property1":"property1",
"property2":"property2",
"property2":"property3",
"object2":{
object2
}
}

我想知道以下选项的最佳实践是什么:

  1. 将整个对象 1 作为完整的 JSON 存储在我的 key 下。
  2. 用自己的 key 存储 object2,并在我的 object1 序列化中将 object2 key 作为引用,并在从缓存中拉回时,也通过其 key 提取 object2。

我的直觉认为选项 1 是最佳实践,也是最有效的,但我又重新考虑将大的嵌套对象存储在键下。

最佳答案

您的场景没有通用的最佳解决方案。这取决于您需要如何查询数据。

如果您总是从您的服务或客户端获取根对象,那么实际上您将整个 JSON 存储在一个字符串键中是正确的。

另一方面,如果您还需要查询关联对象,则需要将每个整个对象图存储在字符串键中,但您还需要将每个关联对象存储在哈希 parentobject :[id] 整个散列将在那里存储直接关联,其中键是关联的对象标识符,值是关联的 JSON 序列化对象。

并且根据您想要查询根对象和关联对象的方式,您需要将它们编入集合、排序集和/或列表,甚至其他哈希中进行索引。

正如我上面所说,没有确定的解决方案,但您需要进行良好的案例研究,并仔细考虑如何将数据存储在 Redis 中,因为糟糕的数据存储设计可能会导致您的无休止的痛苦项目。

将 Redis 视为数据索引。这就像您将手动实现关系数据库索引一样。

关于json - 将对象保存在缓存中的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32434120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com