redis內存淘汰機制有哪些

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教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享