You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis内存达限时是否驱逐哈希子键?7.4前后行为及策略差异

Redis内存限制下的键驱逐行为(含7.4版本差异)

7.4版本之前的基础行为

在Redis 7.4之前,一旦触发内存限制的驱逐逻辑,只会删除整个顶级键(比如整个哈希键),绝对不会单独驱逐哈希里的子键。不管哈希子键有没有特殊属性,Redis都把整个哈希键当成一个不可拆分的单元来处理。

Redis 7.4的核心变化

7.4新增了HEXPIRE命令,支持给哈希子键单独设置TTL(过期时间),这直接改写了内存驱逐的规则:哈希子键不再是顶级键的附属,而是可以作为独立的驱逐候选对象。

volatile-lru策略下的表现

如果驱逐策略设为volatile-lru(只驱逐带TTL的对象):

  • 内存不足时,Redis会优先删除用HEXPIRE设置了TTL的哈希子键,不会直接动整个哈希键。
  • 只有等所有带TTL的哈希子键都被清完,内存还是不够,才会考虑删除那些本身带TTL的顶级哈希键(如果有的话)。

allkeys-lru策略下的表现

如果用allkeys-lru(驱逐所有对象里最近最少使用的):

  • Redis会把所有顶级键和带TTL的哈希子键都放进LRU统计池里,优先删除最近最少被使用的那个对象——可能是某个哈希子键,也可能是某个顶级键,全看LRU排序结果。
  • 要是某个哈希键的所有子键都被清完了,空的哈希键会被自动清理。

内容的提问来源于stack exchange,提问作者tuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 15:39:54