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 上的哈希缓存驱逐的主要内容,如果未能解决你的问题,请参考以下文章
Django 4.0 正式发布,新的密码哈希器和 Redis 缓存后端