2017-05-28 20 views
0

我在Rails 5應用程序中使用SideKiq和Heroku Redis。隨着時間的推移,我的內存利用率呈線性增長,導致我不得不每個月左右升級計劃。我的負載一直比較平坦。隨着時間的推移,我如何限制Sideisq的REDIS內存使用量?

我有一個驅逐政策noeviction,正如SideKiq wiki中所建議的。這是否意味着我的記憶足跡將隨着時間的推移而持續增長?

回答

0

noeviction是Redis中的驅逐策略設置。如果達到最大內存使用量,則會導致Redis返回錯誤。
要限制Redis中的內存使用量,您可以在redis.conf文件中設置並設置maxmemory設置。
Read here有關它的更多信息。

+0

但是來自SideKiq: 當所有數據都放在內存中時,Redis運行得最好。許多人使用Redis作爲緩存,但重要的是Sidekiq針對未配置爲緩存但作爲持久存儲的Redis實例運行。您應該在redis.conf中設置maxmemory-policy noviction,以便Redis不會無聲放棄Sidekiq的數據。如果您希望使用Redis進行緩存和Sidekiq,我建議使用兩個單獨的Redis實例,每個實例都進行了相應的配置。 https://github.com/mperham/sidekiq/wiki/Using-Redis 因此,使用maxmemory運行是否安全,還是會失去活動工作? – Jason

+0

你可以閱讀更多關於Redis持久性[here](http://oldblog.antirez.com/post/redis-persistence-demystified.html)。 – Niklas

相關問題