當Redis內存用盡時會作何處理?

若是你打開虛擬內存功能,當內存用盡時, Redis就會把那些不常用的數據存儲到磁盤。
若是Redis裏的虛擬內存被禁了,他就會用上操做系統的虛擬內存(交換內存),同時性能急劇降低。
你能夠配置maxmemory參數,來避免Redis默認再分配更多的內存。html

在較新版本的Redis配置文件中使用了特別的設置選項,當我須要回收內存的時候。
有5種選項規則:redis

  • volatile-lru:在使用了過時設置的集合中,嘗試刪除一個最近沒在用的鍵。
  • volatile-tt:在使用了過時設置的集合中,嘗試刪除一個有較短expire時間的鍵。
  • volatile-random:在使用了過時設置的集合中隨機刪除一個鍵。
  • allkeys-lru:跟volatile-lru相似,但它會將每一種類型鍵都移除,無論是有效仍是過時的只要設置了過時時間。
  • allkeys-random:跟volatile-random相似,但它會將每一種類型鍵都移除,無論是有效仍是過時的只要設置了過時時間。

參考文檔:
http://antirez.com/post/redis-as-LRU-cache.html
http://eli.thegreenplace.net/2009/10/30/handling-out-of-memory-conditions-in-c/dom

相關文章
相關標籤/搜索