3

キャッシングに redis を使用していますが、最近、メモリの使用量に問題が発生しました。すべての RAM が消費されたため、サーバーを再起動する必要がありました。

それは最大のマシンではありませんが、同じ問題を再び回避するために redis をどのように構成すればよいですか?

free -m
             total       used       free     shared    buffers     cached
Mem:           240        222         17          0          6         38
-/+ buffers/cache:        177         62
Swap:          255         46        209

次の設定を変更しました。

タイムアウト 60
データベース 1 回
保存 300 1 回
保存 60 100
maxmemory 104857600

top
top - 14:15:28 up  1:19,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  49 total,   1 running,  48 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    245956k total,   228420k used,    17536k free,     6916k buffers
Swap:   262136k total,    47628k used,   214508k free,    39540k cached
4

3 に答える 3

5

設定ファイルで「maxmemory」ディレクティブを使用できます。このメモリ量を超えると、Redisはすでに有効期限が設定されている以前のキーを期限切れにします(より早く期限切れになるキーが最初に削除されます)。

于 2010-08-19T19:32:05.407 に答える
1

memcachedとは異なり、redisはデータベースであると想定されています。そのため、新しい値のためのスペースを確保するために古い値が自動的に削除されることはありません。

各キー/値の有効期限を明示的に設定する必要があります。それでも、それよりも速くキー/値を作成するとオーバーフローする可能性があります。

于 2010-08-02T12:23:31.000 に答える
1

Redis 2.0 で Redis 仮想メモリを使用する: http://antirez.com/post/redis-virtual-memory-story.html

于 2010-08-05T21:03:56.307 に答える