Redis: OOM command not allowed when used memory > ‘maxmemory’

2117 ワード

げんしょう


ログに異常が発生しました:
OOM command not allowed when used memory > 'maxmemory'

の原因となる


メモリがいっぱいで、データの再保存は許可されていません.redis-cliでredisの詳細を表示できます.
127.0.0.1:6379> info memory
# Memory
used_memory:4120248
used_memory_human:3.93M
used_memory_rss:11509760
used_memory_peak:1977983104
used_memory_peak_human:1.84G
used_memory_lua:36864
mem_fragmentation_ratio:2.79
mem_allocator:jemalloc-3.6.0

注意:
  • used_memory_humanはメモリ
  • を使用していることを示します.
  • used_memory_rssは、システムがredisに割り当てるメモリ(すなわち、常駐メモリ)
  • を表す.
  • mem_fragmentation_ratio=used_memory_rss/used_memoryスケール、一般的にused_memory_rssはusedよりやや高いmemory、メモリの破片が多い場合mem_fragmentation_ratioは大きくなり、メモリフラグメントが多いかどうかを反映します.
  • 解決する


    注意:プロファイルを変更した場合はredisを再起動する必要があります
    1.redisメモリを追加し、redisを修正する.conf
    maxmemory 2gb

    2.redisストレージポリシーの変更
    デフォルトのredis設定は非常に保守的である、すなわちメモリが限界を超えると記憶されず、ポリシーをLRUアルゴリズム(最近最もアルゴリズムを使用する)に変更することができる--新しく記憶された情報は古い情報を置き換え、メモリがオフラインになることなくredisを変更することができる.conf
    maxmemory-policy volatile-lru

    3.reidsにデータを保存しない
    こんなに多くのデータをredisに保存する必要がありますか?