Redis HMSET具有多个字段或多个HMSET用于查找

时间:2019-11-14 14:19:41

标签: .net-core redis stackexchange.redis

我是Redis的新手。我有一种情况,我需要将数百万个项目放在Redis缓存中以供以后查找。如果一段时间未使用,则每个条目也需要过期。

一种方法是,使用带有字段和值的HMSET,另一种HMSET来跟踪到期时间(大量记账)

第二个选项是为每个条目设置HMSET,并为其设置到期时间。 (我猜很容易)。

我的问题是,Redis是否被设计为拥有数百万个HMSET?随着对缓存的每个条目引入越来越多的HMSET,它会降低Redis的性能吗? 后续问题。如果我要使用字符串数据类型,是否同样适用?

1 个答案:

答案 0 :(得分:1)

  • 使用散列的存储效率更高:https://redis.io/topics/memory-optimization
  • 根据hash-max-zipmap-entrieshash-max-zipmap-value的设置,内存保存会有所不同
  • 使用散列将不允许您使键的各个字段失效,并且像您设置的那样,您需要另一个散列来进行簿记。您可以编写Lua脚本来插入数据和簿记ttl数据;节省一些往返时间。
  • 拥有数百万个哈希值很好
  • 如果您觉得哈希太大,可以随时对其进行分块。例如,将id模数与1000进行比较,以使id <1000,将散列到0,依此类推。。。这样您将得到更少的散列