82.如果有大量的 key 需要设置同一时间过期,一般需要注意什么?

参考解析

如果大量的 key 过期时间设置的过于集中,到过期的那个时间点,Redis可能会出现短暂的卡顿现象。

一般需要在时间上加一个随机值,使得过期时间分散一些。


上次基友也碰到这个问题,请教了下,他的方案是调大 hz 参数,每次过期的 key 更多,从而最终达到避免一次过期过多。

这个定期的频率,由配置文件中的 hz 参数决定,代表了一秒钟内,后台任务期望被调用的次数。Redis 3.0.0 中的默认值是 10 ,代表每秒钟调用 10 次后台任务。

hz 调大将会提高 Redis 主动淘汰的频率,如果你的 Redis 存储中包含很多冷数据占用内存过大的话,可以考虑将这个值调大,但 Redis 作者建议这个值不要超过 100 。我们实际线上将这个值调大到 100 ,观察到 CPU 会增加 2% 左右,但对冷数据的内存释放速度确实有明显的提高(通过观察 keyspace 个数和 used_memory 大小)。