[解決済み] MongoDBとredis
質問
RedisとMongoDBを併用することで、どのようなメリットがあるのか、ユースケースの例を教えていただけませんか?
どのように解決するのですか?
RedisとMongoDBは一緒に使っても良い結果が得られます。MongoDB と Redis (MySQL と Sphinx とともに) を動かしていることでよく知られている会社は Craiglist です。以下を参照してください。 このプレゼンテーション Jeremy Zawodny 氏のプレゼンテーションを参照してください。
MongoDBは、永続的でドキュメント指向の、さまざまな方法でインデックス化されたデータに対して興味深いものです。Redisは、揮発性のデータやレイテンシーに敏感な半永久的なデータに対してより興味深いものです。
MongoDBの上にRedisを載せた具体的な使用例をいくつか紹介します。
-
2.2 以前の MongoDB にはまだ期限切れの仕組みがありません。キャップドコレクションは本当の意味でのTTLを実装するために使うことはできません。RedisはTTLベースの有効期限メカニズムを持っており、揮発性のデータを保存するのに便利です。たとえば、ユーザーセッションは一般に Redis に保存され、ユーザーデータは MongoDB に保存されてインデックス化されます。MongoDB 2.2 では、コレクションレベルで精度の低い有効期限メカニズムが導入されたことに注意してください (たとえばデータのパージに使います)。
-
Redisは便利なセットデータ型とそれに関連する操作(union, intersection, difference on multiple sets, etc ...)を提供します。この機能の上に、基本的なファセット検索やタグ付けエンジンを実装するのは非常に簡単で、MongoDBのより伝統的なインデックス作成機能への興味深い追加となります。
-
Redisはリストに対する効率的なブロッキングポップ操作をサポートしています。これは、アドホックな分散キューイングシステムを実装するために使用することができます。バックエンドアプリケーションがタイムアウトを伴う複数のキューをリッスンしたり、アイテムを別のキューにアトミックに転送したりできるので、MongoDBのテーラブルカーソルよりも柔軟性がありますIMO ... もしアプリケーションがキューイングを必要とするならば、キューをRedisに保存し、永続的な機能データをMongoDBに保持することは理にかなっています。
-
Redisはpub/subメカニズムも提供します。分散アプリケーションでは、イベントプロパゲーションシステムが便利な場合があります。これはまたRedisの優れたユースケースであり、一方で永続的なデータはMongoDBに保持されます。
データモデルの設計はRedisよりもMongoDBのほうがはるかに簡単なので(Redisはより低レベル)、主な永続データにMongoDBの柔軟性を、そしてRedisが提供する追加機能(低遅延、アイテム期限切れ、キュー、パブ/サブ、原子ブロックなど)から利益を得られるのは興味深いことです。これは実に良い組み合わせです。
RedisとMongoDBのサーバーを同じマシンで実行することは絶対に避けてください。MongoDBのメモリはスワップアウトされるように設計されていますが、Redisはそうではありません。もしMongoDBが何らかのスワップ動作を引き起こした場合、Redisのパフォーマンスは壊滅的なものになるでしょう。これらは別のノードに分離する必要があります。
関連
-
[解決済み] 配列フィールドが空でない MongoDB レコードを検索する
-
[解決済み] mongooseを使ってmongodbにドキュメントを挿入し、生成されたidを取得する方法は?
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] MongoDBとその逆の上にCouchDBを使用するとき
-
[解決済み] MongoDBのリレーションシップ:埋め込みか参照か?
-
[解決済み] 別のフィールドの値を使って MongoDB のフィールドを更新する
-
[解決済み】ネストされたオブジェクトをクエリする方法は?
-
[解決済み】2つの異なるコレクションで重複したMongo ObjectIdが生成される可能性?
-
[解決済み] MongoDb の 2 つのフィールドを比較するクエリ条件
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 配列のサイズが1より大きい文書を検索します。
-
[解決済み] mongodb シェルでドキュメントの値を印刷する
-
[解決済み] MongoDB Compass: select distinct フィールド値
-
[解決済み] MongoDB の個別集計
-
[解決済み] ネストされた配列の中で、マッチしたサブドキュメントの要素のみを返す
-
[解決済み] 条件付きでMongoDBを更新する
-
[解決済み] 配列フィールドが空でない MongoDB レコードを検索する
-
[解決済み] MongoDB SELECT COUNT GROUP BY
-
[解決済み] MongoDb の 2 つのフィールドを比較するクエリ条件
-
[解決済み] Mongo: 特定のフィールドを持たない項目を検索する