redis caching-存储重复数据是一种不好的做法吗

hec6srdp  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(170)

在redis缓存中存储重复数据是一种不好的做法吗?
我正在尝试graphql缓存解决方案,但是我有一些表,我通过组合键而不是主键来查询它们,这对我来说似乎有点问题。
让我们考虑一下这些表格

Products - id, ...
Images - id, productId, size

我需要能够得到的图像(多个)通过 productId 或者一行一行 productId 以及 size .
我现在存储的是

{
  images:productId:1:size:sm: {...},
  images:productId:1:size:xs: {...},
  images:productId:1: ['images:productId:1:size:sm', 'images:productId:1:size:xs']
}

第三个对象包含对产品缓存中所有可用图像的引用,因此我最终执行两个查询来检索数据。
如果我想要一个,我可以直接去拿。如果我想要所有这些,我首先要按第三个键,然后使用其中的键来获取实际对象。
这是个坏主意吗?我是应该费心处理它,还是只使用更简单的形式

{
  images:productId:1:size:sm: {...},
  images:productId:1:size:xs: {...},
  images:productId:1: [ {...}, {...} ] // Copies of the two objects from above
}

为了提供一些上下文,随着时间的推移,其中一些对象可能会变得有点大,因为它们可能包含来自富文本编辑器的长文本/html。
我读到散列可以更好地压缩数据,所以我将它们组织在一个散列中,这样失效也变得更容易(我不在乎使其中一些失效,它们总是一次失效)。
这是一个多租户系统,在这里我将使用租户id将数据范围限定到特定用户。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题