Redis 中的过期删除策略是指在键(key)上设置了过期时间后,Redis 在某个条件触发时会自动删除过期的键。

Redis 中有两种过期删除策略:

  1. 定期删除策略(定时任务方式):Redis 会定期地(默认每秒钟检查 10 次)随机抽取一部分设置了过期时间的键,检查它们是否过期,如果过期则删除。该策略可以通过配置文件中的 hz 参数进行调整。
  2. 惰性删除策略(懒汉式方式):当访问一个键时,Redis 会先检查该键是否过期,如果过期则删除。这意味着过期键可能会在访问时被删除,而不是在过期时立即删除。

Redis 定期删除策略并不会遍历删除每个过期键,而是采用随机抽取的方式删除过期键,同时为了保证过期扫描不影响 Redis 主业务,Redis 的定期删除策略中还提供了最大执行时间,以保证 Redis 正常并高效的运行。

关于“hz”

在 Redis 中,"hz" 是 "hertz" 的缩写。Hertz 是国际单位制中表示频率的单位,表示每秒钟发生的周期数或事件发生的次数。在 Redis 中,"hz" 参数用于表示每秒钟执行定期删除策略的次数,即每秒钟检查过期键的频率。 默认 hz 配置如下图所示: image.png 可以编辑 Redis 的配置文件 redis.conf,找到并修改以下参数来调整定期删除策略:

hz <value>

默认情况下,hz 参数的值为 10,表示每秒钟进行 10 次检查。可以根据需要增加或减少该值来调整定期删除的频率。例如,将 hz 的值设置为 5,表示每秒钟进行 5 次检查。

修改完成后,保存配置文件并重启 Redis 服务器使配置生效。


以上内容来自我的 《Java 面试突击训练营》,这门课程是 有着 14 年工作经验(前 360 开发工程师),9 年面试官经验的我,花费 4 年时间打磨完成的一门视频面试课

整个课程从 Java 基础到微服务 Spring Cloud、从实际开发问题到场景题应有尽有,如下图所示:

全程通过视频直播 + 录播的方式,把 Java 常见的面试题系统的过一遍,遇到一个问题,把这个问题相关的内容都给大家讲明白,并且视频支持永久更新和观看。

上完训练营的课程之后,基本可以应对目前市面上绝大部分公司的面试了,想要了解详情,加我微信:GG_Stone【备注:训练营】