首頁  >  文章  >  資料庫  >  redis記憶體淘汰機制有哪些

redis記憶體淘汰機制有哪些

hzc
hzc原創
2020-06-28 14:44:126843瀏覽

redis記憶體淘汰機制有:1、noeviction,當記憶體使用達到閾值的時候,所有引起申請記憶體的指令會報錯;2、allkeys-lru,在主鍵空間中,優先移除最近未使用的key;3、allkeys-random,在主鍵空間中,隨機移除。

redis記憶體淘汰機制有哪些

記憶體淘汰策略

記憶體淘汰只是Redis 提供的功能,為了更好地實現這個功能,必須為不同的應用場景提供不同的策略,記憶體淘汰策略講的是為實現記憶體淘汰我們具體怎麼做,要解決的問題包括淘汰鍵空間如何選擇?在鍵空間中淘汰鍵如何選擇?

Redis 提供了以下幾種淘汰策略供使用者選擇,其中預設的策略為noeviction 策略:

  • noeviction:當記憶體使用達到閾值的時候,所有引起申請記憶體的命令都會報錯

  • allkeys-lru:在主鍵空間中,優先移除最近未使用的

  • keyvolatile-lru:在設定了過期時間的鍵空間中,優先移除最近未使用的 

  • keyallkeys-random:在主鍵空間中,隨機移除某個 

  • keyvolatile-random:在設定了過期時間的鍵空間中,隨機移除某個

  •  keyvolatile-ttl:在設定了過期在時間的鍵空間中,具有更早過期時間的key 優先移除

這裡補充一下主鍵空間和設定了過期時間的鍵空間,舉個例子,假設我們有一批鍵儲存在Redis中,則有那麼一個哈希表用於儲存這批鍵及其值,如果這批鍵中有一部分設定了過期時間,那麼這批鍵還會被儲存到另一個雜湊表中,這個哈希表中的值對應的是鍵被設定的過期時間。設定了過期時間的鍵空間為主鍵空間的子集。

推薦教學: 《Redis教學

以上是redis記憶體淘汰機制有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn