Redis 上的哈希缓存驱逐

Posted

技术标签:

【中文标题】Redis 上的哈希缓存驱逐【英文标题】:Cache eviction on hashes on Redis 【发布时间】:2014-12-29 08:59:01 【问题描述】:

如果我在 Redis 上有多个散列,每个散列的键在 24 小时内过期,如果在使用 allkeys-lru 之类的驱逐策略时内存耗尽,Redis 会删除整个散列还是单个键?

【问题讨论】:

【参考方案1】:

Redis 仅支持键级别的过期。因此,一旦设置了 TTL,包含 hashmap 的密钥将完全过期(所有子字段都将随之消失)。其他 Redis 数据类型(例如 Sets 和 Lists)也是如此。

如果您使用哈希存储需要过期的键名,只需为每个此类键名单独设置 TTL,而不是为哈希键设置 TTL。

【讨论】:

只是为了确认一下:当你说Redis only supports expiration at the key's level.时,你指的不是Redis哈希键(级别1)中包含的键,而是一般的Redis键(级别0)? 没错。将 0 级哈希键中的“键”视为“字段”,然后键的到期是有意义的(但不是字段 :))。

以上是关于Redis 上的哈希缓存驱逐的主要内容,如果未能解决你的问题,请参考以下文章

redis哈希缓存数据表

Redis缓存一致性哈希算法

Redis五大数据类型(未完)

Django 4.0 正式发布,新的密码哈希器和 Redis 缓存后端

Redis分布式算法 — Consistent hashing(一致性哈希)

redis缓存思路