看了很多文章介紹 主鍵失效機制的,主要是透過配置失效淘汰策略(LRU/TTL/RADMON 針對 volatile 和 全局 key 的)和失效策略(消極方法 積極方法)。
我有個疑問,官方介紹 key 的 expire 方法的時候(可以戳這裡)說2.6版本之後可以達到0-1毫秒的延遲。
但是失效策略最有效率的情況下(設定:volatile-ttl),當所有的失效key 都放在dict 裡面去處理超時銷毀時,失效策略的執行是1/10秒執行一次(100毫秒) ,怎麼就能達到官方說的0-1毫秒呢?是不是我哪裡理解有誤呢?
介紹失效機制:
http://blog.nosqlfan.com/html...
#https://yq.aliyun.com/article...
介紹 expire:
http://redis.cn/commands/expi...
很簡單,「過期」!=「刪除」。
過期精度的提升,我估計主要還是由於 pexpire 指令的引入所帶來的。之前記錄的 ttl 應該只有秒精度,所以過期精度也就那樣了。
Redis 肯定沒有辦法保證在 1ms 內刪除所有已過期的 key,但是它可以保證你不會看到過期超過 1ms 的 key。