搜尋

首頁  >  問答  >  主體

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...

#
PHPzPHPz2766 天前1353

全部回覆(1)我來回復

  • 怪我咯

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

    很簡單,「過期」!=「刪除」。

    過期精度的提升,我估計主要還是由於 pexpire 指令的引入所帶來的。之前記錄的 ttl 應該只有秒精度,所以過期精度也就那樣了。

    Redis 肯定沒有辦法保證在 1ms 內刪除所有已過期的 key,但是它可以保證你不會看到過期超過 1ms 的 key。

    回覆
    0
  • 取消回覆