Heroku提供了一個很棒的Redis插件,免費提供25MB的記憶體。

這個存儲量只需數千個項目即可輕鬆填滿,具體取決於您存儲的內容。

Heroku有一個名為maxmemory-policy的配置選項,它決定了當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