概要
- heroku redisの標準設定だと、古いキーは勝手に消えずメモリ使い切るとエラーする
- redis:maxmemoryの設定を変えておこう
詳細
発生したエラーについて
unityroom.com ですけど今日のお昼ぐらいから断続的にエラー出まくってました。

Redis::CommandError: OOM command not allowed when used memory > 'maxmemory'.
メモリが足りないよエラー。
maxmemory-policy
Heroku Redis | Heroku Dev Center
上記公式ドキュメント参照
noevictionwill return errors when the memory limit is reached.allkeys-lruwill remove less recently used keys first.volatile-lruwill remove less recently used keys first that have an expiry set.allkeys-randomwill evict random keys.volatile-randomwill evict random keys but only those that have an expiry set.volatile-ttlwill only evict keys with an expiry set and a short TTL.
デフォルトだと noeviction 勝手にキーは消さず、満杯になったらエラーする
変更
- unityroomではキャッシュ目的で使っているので、
volatile-lruに変更する
heroku redis:maxmemory -a application-name --policy volatile-lru
> heroku redis:info -a application-name ~~~ Maxmemory: volatile-lru ~~~
ちゃんと変わってた。
変えた時間以降エラーが止まってることも確認。
ご不便おかけしてすいませんでした〜