Heroku Redis Maxmemory策略

Heroku提供了一個很棒的Redis插件,它可以免費提供25MB的內存。

取決於您要存儲的內容,可以輕鬆地用幾千個項目填充這麼多的存儲空間。

Heroku有一個名為的配置選項最大內存策略它確定當Redis數據庫內存已滿時系統的行為。

默認情況下,此屬性設置為noeviction,這意味著Redis在嘗試存儲更多數據時將引發錯誤。

這樣做是為了讓您意識到發生了什麼,一旦發現可以更改此行為,就該確定如何

Redis本身提供了各種行為,它們是:

  • noeviction:在達到內存限制並且客戶端嘗試執行可能導致使用更多內存的命令時返回錯誤(大多數寫入命令,但是DEL和一些其他例外)。
  • allkeys-lru:通過嘗試先刪除較新使用的(LRU)鍵來退出鍵,以便為添加的新數據騰出空間。
  • volatile-lru:通過嘗試首先刪除較新使用的(LRU)密鑰來退出密鑰,但僅在已設置過期的密鑰中刪除,以便為添加的新數據騰出空間。
  • allkeys-random:隨機逐出按鍵,以便為添加的新數據騰出空間。
  • volatile-random:隨機逐出鍵,以便為添加的新數據騰出空間,但僅逐出設置了到期時間的鍵。
  • volatile-ttl:逐出設置有過期設置的密鑰,並嘗試首先逐出具有較短生存時間(TTL)的密鑰,以便為添加的新數據騰出空間。

您可以根據自己的需要找到最佳情況。有了候選人後,您可以使用Heroku CLI應用更改,例如:

heroku redis:maxmemory YOUR_REDIS_INSTANCE_NAME --policy volatile-lru