Redis-缓存数据的最佳方法

时间:2019-05-23 09:39:31

标签: redis

我有3种类型的值。

Type1 - In millions
Type2 - In hundreds
Type3 - In tens

对于每种类型1,所有类型2都应由类型3处理。

我可以使用set。

Type1#Type3 = {Type2 values}

Type1#Type2 = {Type3 values}

如果我将Type3保留为键,则该设备将占用更多内存。

还是有更好的方法来存储这种类型的数据?

我评估了散列,该散列占用的内存比设置的多。我用ziplist压缩评估了哈希值。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您可以容忍分裂,这是另一种方法:

第一个HashMap,其键为type1值,值为:分隔的与该type 1值链接的type2值列表

type1_a => type2_b:type2_c..

type1_b => type2_k:type2_d..

第二个HashMap,其键为type2值,而value为对应的type3值

type2_a => type3a

type3_b => type3b

for type2_key in firstHashMap.get(type1_key).split(':') secondHasMap.get(type2_key)

此外,您可以查看Lua脚本以避免在客户端执行上述操作。