搜索

首页  >  问答  >  正文

Redis 主键失效机制如何保证 Expire 0-1毫秒的误差?

看了很多文章介绍 主键失效机制的,主要是通过配置失效淘汰策略(LRU/TTL/RADMON 针对 volatile 和 全局 key 的)和失效策略(消极方法+积极方法)。

我有个疑问,官方介绍 key 的 expire 方法的时候(可以戳这里)说2.6版本之后可以达到0-1毫秒的延迟。
但是失效策略最高效的情况下(配置:volatile-ttl),当所有的失效 key 都放在 dict 里面去处理超时销毁时,失效策略的执行是1/10秒执行一次(100毫秒),怎么就能达到官方说的0-1毫秒呢?是不是我哪里理解有误呢?

介绍失效机制:

  1. http://blog.nosqlfan.com/html...

  2. https://yq.aliyun.com/article...

介绍 expire:

  1. http://redis.cn/commands/expi...

PHPzPHPz2767 天前1355

全部回复(1)我来回复

  • 怪我咯

    怪我咯2017-05-31 10:33:26

    很简单,「过期」!=「删除」。

    过期精度的提升,我估计主要还是由于 pexpire 命令的引入带来的。之前记录的 ttl 应该只有秒级精度,所以过期精度也就那样了。

    Redis 肯定没有办法保证在 1ms 内删除所有已过期的 key,但是它可以保证你不会看到过期超过 1ms 的 key。

    回复
    0
  • 取消回复