検索

ホームページ  >  に質問  >  本文

memcached - redis、memcache、mongoDB有哪些区别?

redis、memcache、mongoDB有哪些区别?例如:性能、可靠性、数据一致性等方面的区别。

ringa_leeringa_lee2798日前734

全員に返信(3)返信します

  • PHP中文网

    PHP中文网2017-04-22 08:58:35

    以下の内容は、共有するために投稿された同僚の要約です:
    Memcached
    Memcached の利点:
    Memcached はマルチコアを利用でき、単一インスタンスのスループットは非常に高く、数十万 QPS に達します (キーと値のバイト サイズとサーバー ハードウェアのパフォーマンス、日常環境でのピーク QPS に応じて異なります) 4~6wくらいです)。最大の積載量に適しています。
    セッションハンドルとして直接設定をサポートします。
    落とし穴はほとんどありません。
    Memcached の制限:
    豊富なデータ型をサポートできる Redis とは異なり、単純なキー/値データ構造のみをサポートします。
    データを永続化することはできず、データをバックアップすることもできず、キャッシュのみに使用でき、再起動するとすべてのデータが失われます。
    データ同期を実行できず、MC 内のデータを他の MC インスタンスに移行できません。
    Memcached のメモリ割り当てでは、スラブ割り当てメカニズムを使用してメモリを管理します。値のサイズ分布に大きな違いがあると、メモリ使用率が低下し、使用率が低い場合でもキックアウトなどの問題が発生します。ユーザーは価値設計に注意を払う必要があります。

    Redis
    Redisの利点:
    string (文字列)、list (ダブルリンクリスト)、dict (ハッシュテーブル)、set (セット)、zset (ソートセット)、hyperloglog (カーディナリティ推定) など、さまざまなデータ構造をサポートします
    永続化操作をサポートし、データ バックアップまたはデータ リカバリ操作のために AOF および RDB データをディスクに永続化できます。これは、データ損失を防ぐためのより良い方法です。
    レプリケーションによるデータ レプリケーションのサポート。マスター スレーブ メカニズムを通じて、データのリアルタイム同期レプリケーションを実行できます。マスター スレーブ メカニズムは、Redis が HA を実行するための重要な手段です。
    シングルスレッドのリクエストでは、すべてのコマンドがシリアルに実行され、同時実行状況でのデータの整合性の問題を考慮する必要がありません。
    メッセージのサブスクリプションと通知に使用できるパブリッシュ/サブスクライブ メッセージ サブスクリプション メカニズムをサポートします。
    単純なトランザクション要件をサポートしていますが、業界での使用例はほとんどなく、まだ成熟していません。

    Redis の制限事項:
    Redis は単一スレッドのみを使用でき、そのパフォーマンスは CPU パフォーマンスによって制限されるため、単一インスタンス CPU は 1 秒あたり最大 5 ~ 6w QPS に達します (データ構造、データ サイズ、サーバー ハードウェア パフォーマンスによって異なります)。日常環境でのQPSは約1~2w程度です。
    単純なトランザクション要件をサポートしていますが、業界での使用シナリオが少なく未成熟であるため、長所と短所の両方があります。
    Redis は文字列型でより多くのメモリを消費します。 dict (ハッシュ テーブル) を使用してストレージを圧縮し、メモリ消費を削減できます。

    :) 以下は私の個人的な追加です
    Mc と Redis はどちらも Key-Value タイプであり、異なるデータ セット間の関係を確立するのには適しておらず、クエリ検索にも適していません。たとえば、redis キー pattern の照合操作は、redis のパフォーマンスに悪影響を及ぼします。

    モゴデータベース
    mogodb はドキュメント データベースです。まず、xml、json、bson 型のデータを格納できる文書データベースについて説明します。これらのデータは自己記述的であり、階層ツリー状のデータ構造を表します。 Redis はハッシュを使用して単純なリレーショナル データを保存できます。
    mogodbにはjson形式のデータが格納されます。
    適切なシナリオ: イベント記録、コンテンツ管理、またはコメント システムなどのブログ プラットフォーム。

    nosq には現在多くの製品があり、建築家の選択は主に次の 2 つの要素によって決まります。
    1) アプリケーションの使用シナリオに適しています。たとえば、コメント システムは mogodb を使用するのに適しており、mc も実装できます (アプリケーションはデータを json に変換して保存しますが、一部のデータを更新するのは不便です)
    2) チームは使い慣れたテクノロジーを開発します。たとえば、チームは mc を使用しているため、redis の代わりに mc を選択することが制限されます。
    開発チームが mogodb を使用しており、kv nosq に適したシナリオで mogodb を選択し続けるという中程度から深刻な状況もあります。

    みんなにおすすめの本: <NoSQL Essence>

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-22 08:58:35

    http://segmentfault.net/q/1010000002572713

    返事
    0
  • 黄舟

    黄舟2017-04-22 08:58:35

    redis と memcache は 2 つのキャッシュ メカニズムであり、主にデータベースの負荷を軽減し、アクセス速度を向上させるために使用されます。 Redis はキャッシュをハードディスクに保存し、コンピュータを再起動して呼び出しを続けることができます。また、Memcache には単純にメモリにキャッシュされる機能があり、単一の機能で高効率です。 mongoDBに関しては、これは単なるデータベースです

    返事
    0
  • キャンセル返事