Redis: OOM command not allowed when used memory > maxmemory
Redisメモリ不足エラーの解決方法
概要
Redisが設定されたメモリ上限に達し、新しいデータを書き込めない状態です。
エラーメッセージ
OOM command not allowed when used memory > 'maxmemory'.
原因
- メモリ制限: maxmemoryに達した
- evictionポリシー: noevictionが設定
- キーの肥大化: 有効期限なしのキーが増加
- 大きな値: 巨大なデータ構造
解決策
1. maxmemory-policyを設定
| |
ポリシーオプション:
noeviction: エラーを返す(デフォルト)allkeys-lru: すべてのキーからLRUで削除volatile-lru: TTL付きキーからLRUで削除allkeys-random: ランダムに削除
2. メモリ使用量確認
| |
3. TTLを設定
| |
4. データ構造の最適化
| |
よくある間違い
- maxmemory-policy未設定でnoeviction
- セッションキーにTTL未設定
Redis の他のエラー
この記事は役に立ちましたか?