1

データストアの 1 つに redis を使用したいと考えています。その redis ストアのサイズを「推測」するのに苦労しており、誰かが適切な助けを提供してくれることを願っています。

このストアは、 Sorted Setsを使用してのみ構築されます。各セットには、1 から 10^10 までの整数であるキーがあります。現在、約 8M のキーがありますが、「すぐに」30M に達すると予想しています。

各セットには可変数の要素がありますが、平均は 17 要素で、最大 135 で最小は 0 です。

ソートされたセットの要素は文字列になります。ここで、可能な限り短い文字列 (5 文字か 6 文字か?) にする必要がありますが、それでも衝突は避けます。スコアはタイムスタンプになります。

現在、約 500 回/秒の書き込みがありますが、その 10 倍になると予想しています。現在、3000 回の読み取り/秒があり、これも 10 倍になると予想しています。

また、AOF ではなく「ダンプ」戦略を使用します。

私たちの目標は、単一の (まだ大きな) Redis マスター ストア (および、いくつかのスレーブ ストア) を使用することです。redis インスタンスにどの RAM を割り当てる必要がありますか?

4

1 に答える 1

3

Redis 2.6 を使用している場合、zset に適用される ziplist メモリ最適化の恩恵を受けることができます。これは、ほとんどの zset の項目数が少ないためです。

必要なメモリを計算するには、要件に対応する少数のキーをインスタンスに入力し、推定するだけです。このユースケースでは、メモリ消費量はキーの数に比例して増加します。

私のシステムで試してみたところ、100000 キーごとに 30 MB (仕様に従って) が得られ、30M キーに 9 GB のメモリが必要になります。ある程度のマージンを取り、保存時に消費される COW メモリ用のスペースを含める必要があります。

注意すれば、おそらく 12 GB のサーバーが動作するでしょう。16 GB のサーバーで問題ありません。

于 2012-08-01T13:02:38.300 に答える