1

Redis サーバーが提供する驚異的な速度について多くのことを聞いたので、データベース サーバーとして PostgreSQL で実行されている既存の Rails アプリケーションの 1 つにプラグインすることを考えました。

私の質問は、システムに約 100000 人のユーザーがいて、フォロワー/フォローパターンを実装したい場合、Redis の SET データ型などを使用できますが、ユーザーに基づいて 100000 の異なるキーを使用することをお勧めします。これは、現在のシナリオでキーを定義する正しいアプローチですか? もしそうなら、redis の単一インスタンスのキー数の制限は何ですか。

キーのより良い設計に関する提案を歓迎します。

4

1 に答える 1

3

Redis は何百万ものキーを問題なく処理できます。理論上の制限は 2^32 キー ( FAQを参照) であるため、実際には使用可能なメモリの量が唯一の制限要因になります。

Redis は、キーとリスト/ハッシュ/セットの 2 つのレベルの階層のみをネイティブにサポートするため、この場合、ユーザーごとにキーを持つことがほとんど唯一のオプションです。

Redis は小さなセットに対して非常にコンパクトな表現を使用するため、ほとんどのユーザーのフォロワーが数人しかいない場合、メモリ使用量はかなり低くなります。一連の構成オプションを調整*-max-ziplist-*すると、特定のデータ セットに最適な結果が得られる場合があります。

ところで、Twitter の人々がスタックの一部に Redis を使用して、フォロワーによって生成された途方もない負荷を処理する方法に興味があるかもしれません:リアルタイム配信アーキテクチャの話は非常に興味深いものです。

于 2013-08-25T14:00:22.590 に答える