redis內存淘汰機制有:1、noeviction,當內存使用達到閾值的時候,所有引起申請內存的命令會報錯;2、allkeys-lru,在主鍵空間中,優先移除最近未使用的key;3、allkeys-random,在主鍵空間中,隨機移除。
內存淘汰策略
內存淘汰只是 Redis 提供的一個功能,為了更好地實現這個功能,必須為不同的應用場景提供不同的策略,內存淘汰策略講的是為實現內存淘汰我們具體怎么做,要解決的問題包括淘汰鍵空間如何選擇?在鍵空間中淘汰鍵如何選擇?
Redis 提供了下面幾種淘汰策略供用戶選擇,其中默認的策略為 noeviction 策略:
-
noeviction:當內存使用達到閾值的時候,所有引起申請內存的命令會報錯
-
allkeys-lru:在主鍵空間中,優先移除最近未使用的
-
keyvolatile-lru:在設置了過期時間的鍵空間中,優先移除最近未使用的?
-
keyallkeys-random:在主鍵空間中,隨機移除某個?
-
keyvolatile-random:在設置了過期時間的鍵空間中,隨機移除某個
-
?keyvolatile-ttl:在設置了過期時間的鍵空間中,具有更早過期時間的 key 優先移除
這里補充一下主鍵空間和設置了過期時間的鍵空間,舉個例子,假設我們有一批鍵存儲在Redis中,則有那么一個哈希表用于存儲這批鍵及其值,如果這批鍵中有一部分設置了過期時間,那么這批鍵還會被存儲到另外一個哈希表中,這個哈希表中的值對應的是鍵被設置的過期時間。設置了過期時間的鍵空間為主鍵空間的子集。
推薦教程: 《Redis教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦