Redis的過期刪除策略

2021-10-04 05:35:37 字數 918 閱讀 1752

過期策略:即redis針對過期的key使用的清除策略,策略為:定期刪除+惰性刪除。

記憶體淘汰機制:即記憶體占用達到記憶體限制設定值時觸發的redis的淘汰策略來刪除鍵。

下面是我對過期刪除策略和記憶體淘汰策略的對比

刪除策略和maxmemory關係

使用客戶端命令config set maxmemory 去修改值,這個命令是立即生效的,需要使用config rewrite命令去更新配置檔案,以免重啟失效。

若是啟用了redis快照(同兩種持久化)功能,一般設定「maxmemory」值為系統可使用記憶體的45%,因為快照時需要一倍的記憶體來複製整個資料集,也就是說如果當前已使用45%,在快照期間會變成95%(45%+45%+5%),其中5%是預留給其他的開銷。 如果沒開啟快照功能,maxmemory最高能設定為系統可用記憶體的95%。

當記憶體使用達到設定的最大閥值時,需要選擇一種key的**策略,可在redis.conf配置檔案中修改「maxmemory-policy」屬性值。

1、若是redis資料集中的key都設定了過期時間,那麼「volatile-ttl」策略是比較好的選擇。

2、但如果key在達到最大記憶體限制時沒能夠迅速過期,或者根本沒有設定過期時間。那麼設定為「allkeys-lru」值比較合適,它允許redis從整個資料集中挑選最近最少使用的key進行刪除(lru淘汰演算法)。redis還提供了一些其他淘汰策略。

在絕大多數場景下使用這2種方式可確保redis不會進行記憶體交換。倘若你擔心由於限制了記憶體使用率導致丟失資料的話,可以設定no-eviction值禁止淘汰資料。

Redis 過期刪除策略

過期時間判定 在redis內部,每當我們設定乙個鍵的過期時間時,redis就會將該鍵帶上過期時間存放到乙個過期字典中。當我們查詢乙個鍵時,redis便首先檢查該鍵是否存在過期字典中,如果存在,那就獲取其過期時間。然後將過期時間和當前系統時間進行比對,比系統時間大,那就沒有過期 反之判定該鍵過期。過期...

redis的過期刪除策略

1.定時刪除 在設定key的過期時間的同時,為該key建立乙個定時器,讓定時器在key的過期時間來臨時,對key進行刪除 優點 保證記憶體被盡快釋放 缺點 1 若過期key很多,刪除這些key會占用很多的cpu時間,在cpu時間緊張的情況下,cpu不能把所有的時間用來做要緊的事兒,還需要去花時間刪除...

Redis 過期鍵刪除策略

當redis伺服器中的資料庫鍵超過過期時間,刪除策略主要為三種 惰性刪除 放任鍵過期不管,但是每次從鍵空間中獲取鍵時,都檢查取得的鍵是否過期,過期的話,刪除該鍵 如果沒有過期,就返回該鍵。定期刪除 每隔一段時間,程式就對資料庫進行一次檢查,刪除裡面的過期鍵。至於要刪除多少過期鍵,以及要檢查多少個資料...