差[投稿]のRedis、Memcacheの区別のMongoDBとRedisの、MemcacheのとMongoDBの

差Redisの、MemcacheのとMongoDBの

 
HTTPS:// www.cnblogs.com/tuyile006/p/6382062.html

 

>> Memcachedの

memcachedのの利点:
マルチコアの利点を利用することができますmemcachedは、単一のインスタンススループットの高い、あなたはQPSの数十万人に達することができます(キー、バイトサイズとサーバーのハードウェアのパフォーマンスの値に応じて、日常の環境は4〜6ワット程度でピークをQPS) 。最大限の搬送量に適用されます。
直接サポートは、セッションハンドルに設定されています。
memcachedの制限:
Redisのは、豊富なデータ型をサポートしているようにだけ、簡単なキー/値データ構造をサポートしています。
持続することはできません、バックアップデータのみをキャッシュに使用し、すべてのデータが失われ、再起動することはできません。
データは、あなたがMCインスタンス内の他のMCにデータを移行することはできません、同期することはできません。
利用率が低いのときに、メモリ管理のスラブ割り当てメカニズムを使用してmemcachedのメモリ割り当ては、大幅に減少し、原因メモリ使用率の間、およびその他の問題の原因値の大きさの分布が異なるが、まだ追い出されています。ユーザーが設計値に注意を払う必要があります。

Redisの>>

Redisの利点:
などの文字列(文字列)としてデータ構造、各種の支援、リスト(二重リンクリスト)、辞書(ハッシュテーブル)、SET(セット)、ZSET(順序集合)、hyperloglog(基数の見積もり)
の操作持続性のサポート、ディスクへのAOF RDBデータの永続化することができ、データのバックアップやデータ復旧操作は、手段はより良いデータの損失を防ぎます。
レプリケーションを介してサポートするデータ複製は,,リアルタイム・データ・レプリケーション、マルチレベルのレプリケーションおよび増分複製のためのマスタ-スレーブ同期機構によって行うことができ、マスタ・スレーブ機構はRedisのHAを行うための重要な手段です。
シングルスレッドの要求、すべてのコマンドは、シリアル問題を検討する必要がなく、同時データの整合性を実行します。
サポートパブ/サブメッセージングは、それがサブスクリプションとメッセージ通知のために使用することができ、メカニズムをサブスクライブします。
シンプルな取引ニーズをサポートしていますが、めったに業界のシーンで使用されていない、成熟されていません。

Redisの制限:
Redisのが唯一のシングルスレッドを使用することができ、性能がCPUの性能によって制限され、それが最高のシングル・インスタンスのCPUは、日常の環境がピークをQPS、データ構造、データのサイズやサーバーのハードウェアの性能に応じて(毎秒5-6wQPSに達することがありました)1〜2ワットの周りについて。
シンプルな取引ニーズをサポートしていますが、めったに業界のシーンで使用されていない、成熟していない、長所と短所の両方。
Redisの文字列で使用される辞書(ハッシュ・テーブル)メモリ消費を削減するために圧縮格納することができ、より多くのメモリタイプを消費します。

MCとRedisのキー値の型は、クエリ検索に適していないデータを、異なる組の間の関係を構築するには適していません。例えば、Redisのの動作性能が災害で一致したキーパターンをRedisの。

>> MongoDBの 

MongoDBはデータベースの文書です。まずそのデータxml、jsonの、BSON型システムを格納できる文書データベースを説明します。

これは、階層的なツリーデータ構造を提示し、自己記述データ(自己記述)を含みます。Redisのは、ハッシュ単純なリレーショナルデータストアを使用することができます。

ストアデータへのMongoDB JSON形式。

イベントログを、またはそのようなシステムをコメントなどのコンテンツ管理プラットフォームを、ブログ:シーンに合わせて。

1.mongodb永続的な原則

異なるMySQLでのMongoDB、MySQLのすべての更新操作は、ハードドライブに直接書き込まれますが、モンゴません、メモリデータベースとして、データ操作メモリへの意志最初の書き込み、その後、ハードドライブは、その後どのようにモンゴを持続、行くために保持されますそれを
一定期間内にキューから持続する延期を取得する(アプリケーションのクラッシュオフしない限り)連続サイクルに専用のスレッドとディスクジャーナル(ログ)に書き込まれたデータを初期化し、起動時のMongoDBと当然のmongofile(データ)で、ユーザーがディスクに書き込まれるようにレコードを追加するとき、それはないですので、プレスのMongoDB開発者が言うので、それはパフォーマンス上の磨耗は発生しません、読み取ったコードが見つかったため、ときCUD操作、記録(レコードタイプ)の書き込みをコミットバルク遅延(groupcommit)のために延期することをキューに入れられ、パラメータが真剣に検討、システム90ミリ秒とするパラメータである時間帯れると考えられている、値が低い場合、それはかもしれません高すぎる、あまりにもデータ損失の原因となりますときには、頻繁にディスク操作、システムのダウンタイムが発生します。

2.のNoSQLデータベースとは何ですか?RDBMSとNoSQLの違いは何ですか?し、どのような状況下でのNoSQLデータベースなし?
NoSQLの非リレーショナルデータベース、NoSQLのは、SQLだけでなく=。
リレーショナル・データベースを使用して、構造化データは、NoSQLのデータ記憶されたキーと値のペアを使用します。
Aは動的データベースのNoSQLに応答する準備ができて考えることができるデータ項目の増加、非構造化/半構造化データが大きい場合には、水平方向に延長します。
サポート;データベースの成熟度を考慮して解析し、ビジネス・インテリジェンス、管理し、プロの問題、優先順位は、リレーショナルデータベースを与えられるべきです。

3.MySQLとされるのMongoDBの基本的な違いは何ですか?
リレーショナルデータベースと非リレーショナル・データベースとの間の差、すなわち、異なるデータ記憶構造。

何4.MongoDB機能ですか?
(1)ドキュメント指向(2)高性能(3)高可用性(4)と拡張可能(5)豊富なクエリー言語

ストアドプロシージャの5.MongoDBのサポートはありますか?サポートされている場合、どのように使用するには?
MongoDBのサポートストアド・プロシージャは、それがdb.system.jsテーブルで保存すると、JavaScriptで書かれています。

6.どのようにストアファイルに、MongoDBのはなぜGridFSをMongoDBの中GridFSのメカニズムを理解するには?
GridFSは、MongoDBの仕様での大きなファイルのファイルストレージです。GridFSは、我々は効果的に大規模なドキュメントを保存するだけでなく、限られたBSONオブジェクトの問題を解決することができるように、保存された複数の小さな文書に大きなファイルを用いて分離することができます。

7.なぜMongoDBのビッグデータファイル?
ウェイ事前に割り当てられたスペースMongoDBは、ファイルの断片化を防止するために使用されます。

ブロックの更新時に移行されている何8.発生したときに、ドキュメント(チャンク)?
Updateは、その変更は、所有権の移転の前に新しいパッチにコピーされます、古いブロック(チャンク)ですぐに発生します。

Aにおける9.MongoDB:{B、C}とA:{B、C}、クエリAに割出し{C、B}は、インデックスを使用しますか?
いいえ、唯一のAは:{B、C}のインデックスを使用します。

10.スライス(シャード)が停止したり、何が起こるかのクエリを開始する時間を遅くする場合は?
スライスが停止した場合、クエリセット「部分」オプションがない限り、それ以外の場合はクエリがエラーを返します。スライス応答が非常に遅い場合、MongoDBはその応答を待ちます。

 

違い>> Redisの、MemcacheのとMongoDBの

Redisの次の次元から、memcacheのは、MongoDBは、比較を行います

1、パフォーマンス

私たちのために、高いパフォーマンスがボトルネックにすべきではないです

全体的に、MongoDBのよりほとんど大きい側面のRedisのとmemcacheのをTPS

図2に示すように、操作の容易性

単一のデータ構造をmemcacheの

リッチは、データ操作のいくつかの側面をRedisのより良いのRedis、少ないネットワークIO倍

MongoDBは非常に豊富でサポートされているほとんどのリレーショナルデータベースのクエリ言語に似た豊富な発現データ、インデックスをサポートしています

3データサイズの量、メモリ空間のサイズ

Redisのバージョン2.0は、VM独自の特徴を追加した後、物理メモリから抜け出すために、あなたは、キー値の有効期限を設定することができます(同様のmemcacheの)

メモリキャッシュは、LRUアルゴリズムを使用して、最大利用可能なメモリを変更することができます

大容量データの保存に適しMongoDBは、行うには、オペレーティングシステムのメモリ管理VMに応じて、メモリもより強力で食べるには、一緒にいないサービスやその他のサービスを行います

4.可用性(シングルポイントの問題)

シングルポイントの問題については、

、コピーマスタから、依存全体のスナップショット、無増分レプリケーションであることが再接続各ノードからマスターノードによる性能及び効率に、Redisのは、分散読み出しを実現するために、クライアントに依存しています

だから、一点の問題はより複雑であり、自動シャーディング、一貫性のあるハッシュメカニズムを設定するためのプログラムに依存する必要性をサポートしていません。

独自のアクティブレプリケーション(複数の記憶)を使用して、独自のレプリケーション・メカニズムをRedisの、または増分コピー(独自の実装を必要とする)、一貫性と性能のトレードオフの方法を変更することなく、代替であります

メモリキャッシュは、データの冗長性を有していない、それは必要ではなく、故障の防止、使用または循環依存のための単一障害点に起因するジッタの問題を解決するためにハッシュアルゴリズムを成熟します。

MongoDBのサポートマスター・スレーブ、さらにreplicaSet(内部使用のPaxos選挙アルゴリズム、自動フェイルオーバー)、クライアント・フェイルオーバーおよびセグメンテーション・メカニズムを保護するために、自動シャーディングメカニズム。

5、信頼性(永続性)

データの永続性とデータ回復のために、

、依存スナップショットの持続、同時にAOF信頼性を向上させる性能に影響を与える:支持体(スナップショット、AOF)のRedis

memcacheのは、通常、パフォーマンスを改善するためにキャッシュで行われ、サポートしていません。

永続的な信頼性の使用をサポートするために、開始のbinlogの道からMongoDBのバージョン1.8

6、データの一貫性(トランザクションのサポート)

同時実行のシナリオでMemcacheのは、CASとの整合性を確保するために

Redisのトランザクションサポートのみを保証するために、比較的弱く、そのトランザクションの実行中に、各連続操作

MongoDBは、トランザクションをサポートしていません。

7、データ解析

MongoDBの内蔵データ解析機能(MapReduceの)、他の人がサポートしていません。

8、アプリケーションのシナリオ

Redisの:データ量が少ないと、よりパフォーマンス・コンピューティングを操作します

メモリキャッシュ:データベースに動的負荷を低減するためのシステムであって、性能を改善するために、キャッシュとしての性能向上のため(データの大きな量に対する読み出し及び書き込みのためにあまり適しては、シャーディングを使用することができます)

MongoDBは:主に大規模なデータ・アクセス効率の問題を解決するために

>> Memcachedの

memcachedのの利点:
マルチコアの利点を利用することができますmemcachedは、単一のインスタンススループットの高い、あなたはQPSの数十万人に達することができます(キー、バイトサイズとサーバーのハードウェアのパフォーマンスの値に応じて、日常の環境は4〜6ワット程度でピークをQPS) 。最大限の搬送量に適用されます。
直接サポートは、セッションハンドルに設定されています。
memcachedの制限:
Redisのは、豊富なデータ型をサポートしているようにだけ、簡単なキー/値データ構造をサポートしています。
持続することはできません、バックアップデータのみをキャッシュに使用し、すべてのデータが失われ、再起動することはできません。
データは、あなたがMCインスタンス内の他のMCにデータを移行することはできません、同期することはできません。
利用率が低いのときに、メモリ管理のスラブ割り当てメカニズムを使用してmemcachedのメモリ割り当ては、大幅に減少し、原因メモリ使用率の間、およびその他の問題の原因値の大きさの分布が異なるが、まだ追い出されています。ユーザーが設計値に注意を払う必要があります。

Redisの>>

Redisの利点:
などの文字列(文字列)としてデータ構造、各種の支援、リスト(二重リンクリスト)、辞書(ハッシュテーブル)、SET(セット)、ZSET(順序集合)、hyperloglog(基数の見積もり)
の操作持続性のサポート、ディスクへのAOF RDBデータの永続化することができ、データのバックアップやデータ復旧操作は、手段はより良いデータの損失を防ぎます。
レプリケーションを介してサポートするデータ複製は,,リアルタイム・データ・レプリケーション、マルチレベルのレプリケーションおよび増分複製のためのマスタ-スレーブ同期機構によって行うことができ、マスタ・スレーブ機構はRedisのHAを行うための重要な手段です。
シングルスレッドの要求、すべてのコマンドは、シリアル問題を検討する必要がなく、同時データの整合性を実行します。
サポートパブ/サブメッセージングは、それがサブスクリプションとメッセージ通知のために使用することができ、メカニズムをサブスクライブします。
シンプルな取引ニーズをサポートしていますが、めったに業界のシーンで使用されていない、成熟されていません。

Redisの制限:
Redisのが唯一のシングルスレッドを使用することができ、性能がCPUの性能によって制限され、それが最高のシングル・インスタンスのCPUは、日常の環境がピークをQPS、データ構造、データのサイズやサーバーのハードウェアの性能に応じて(毎秒5-6wQPSに達することがありました)1〜2ワットの周りについて。
シンプルな取引ニーズをサポートしていますが、めったに業界のシーンで使用されていない、成熟していない、長所と短所の両方。
Redisの文字列で使用される辞書(ハッシュ・テーブル)メモリ消費を削減するために圧縮格納することができ、より多くのメモリタイプを消費します。

MCとRedisのキー値の型は、クエリ検索に適していないデータを、異なる組の間の関係を構築するには適していません。例えば、Redisのの動作性能が災害で一致したキーパターンをRedisの。

>> MongoDBの 

MongoDBはデータベースの文書です。まずそのデータxml、jsonの、BSON型システムを格納できる文書データベースを説明します。

これは、階層的なツリーデータ構造を提示し、自己記述データ(自己記述)を含みます。Redisのは、ハッシュ単純なリレーショナルデータストアを使用することができます。

ストアデータへのMongoDB JSON形式。

イベントログを、またはそのようなシステムをコメントなどのコンテンツ管理プラットフォームを、ブログ:シーンに合わせて。

1.mongodb永続的な原則

異なるMySQLでのMongoDB、MySQLのすべての更新操作は、ハードドライブに直接書き込まれますが、モンゴません、メモリデータベースとして、データ操作メモリへの意志最初の書き込み、その後、ハードドライブは、その後どのようにモンゴを持続、行くために保持されますそれを
一定期間内にキューから持続する延期を取得する(アプリケーションのクラッシュオフしない限り)連続サイクルに専用のスレッドとディスクジャーナル(ログ)に書き込まれたデータを初期化し、起動時のMongoDBと当然のmongofile(データ)で、ユーザーがディスクに書き込まれるようにレコードを追加するとき、それはないですので、プレスのMongoDB開発者が言うので、それはパフォーマンス上の磨耗は発生しません、読み取ったコードが見つかったため、ときCUD操作、記録(レコードタイプ)の書き込みをコミットバルク遅延(groupcommit)のために延期することをキューに入れられ、パラメータが真剣に検討、システム90ミリ秒とするパラメータである時間帯れると考えられている、値が低い場合、それはかもしれません高すぎる、あまりにもデータ損失の原因となりますときには、頻繁にディスク操作、システムのダウンタイムが発生します。

2.のNoSQLデータベースとは何ですか?RDBMSとNoSQLの違いは何ですか?し、どのような状況下でのNoSQLデータベースなし?
NoSQLの非リレーショナルデータベース、NoSQLのは、SQLだけでなく=。
リレーショナル・データベースを使用して、構造化データは、NoSQLのデータ記憶されたキーと値のペアを使用します。
Aは動的データベースのNoSQLに応答する準備ができて考えることができるデータ項目の増加、非構造化/半構造化データが大きい場合には、水平方向に延長します。
サポート;データベースの成熟度を考慮して解析し、ビジネス・インテリジェンス、管理し、プロの問題、優先順位は、リレーショナルデータベースを与えられるべきです。

3.MySQLとされるのMongoDBの基本的な違いは何ですか?
リレーショナルデータベースと非リレーショナル・データベースとの間の差、すなわち、異なるデータ記憶構造。

何4.MongoDB機能ですか?
(1)ドキュメント指向(2)高性能(3)高可用性(4)と拡張可能(5)豊富なクエリー言語

ストアドプロシージャの5.MongoDBのサポートはありますか?サポートされている場合、どのように使用するには?
MongoDBのサポートストアド・プロシージャは、それがdb.system.jsテーブルで保存すると、JavaScriptで書かれています。

6.どのようにストアファイルに、MongoDBのはなぜGridFSをMongoDBの中GridFSのメカニズムを理解するには?
GridFSは、MongoDBの仕様での大きなファイルのファイルストレージです。GridFSは、我々は効果的に大規模なドキュメントを保存するだけでなく、限られたBSONオブジェクトの問題を解決することができるように、保存された複数の小さな文書に大きなファイルを用いて分離することができます。

7.なぜMongoDBのビッグデータファイル?
ウェイ事前に割り当てられたスペースMongoDBは、ファイルの断片化を防止するために使用されます。

ブロックの更新時に移行されている何8.発生したときに、ドキュメント(チャンク)?
Updateは、その変更は、所有権の移転の前に新しいパッチにコピーされます、古いブロック(チャンク)ですぐに発生します。

Aにおける9.MongoDB:{B、C}とA:{B、C}、クエリAに割出し{C、B}は、インデックスを使用しますか?
いいえ、唯一のAは:{B、C}のインデックスを使用します。

10.スライス(シャード)が停止したり、何が起こるかのクエリを開始する時間を遅くする場合は?
スライスが停止した場合、クエリセット「部分」オプションがない限り、それ以外の場合はクエリがエラーを返します。スライス応答が非常に遅い場合、MongoDBはその応答を待ちます。

 

違い>> Redisの、MemcacheのとMongoDBの

Redisの次の次元から、memcacheのは、MongoDBは、比較を行います

1、パフォーマンス

私たちのために、高いパフォーマンスがボトルネックにすべきではないです

全体的に、MongoDBのよりほとんど大きい側面のRedisのとmemcacheのをTPS

図2に示すように、操作の容易性

単一のデータ構造をmemcacheの

リッチは、データ操作のいくつかの側面をRedisのより良いのRedis、少ないネットワークIO倍

MongoDBは非常に豊富でサポートされているほとんどのリレーショナルデータベースのクエリ言語に似た豊富な発現データ、インデックスをサポートしています

3データサイズの量、メモリ空間のサイズ

Redisのバージョン2.0は、VM独自の特徴を追加した後、物理メモリから抜け出すために、あなたは、キー値の有効期限を設定することができます(同様のmemcacheの)

メモリキャッシュは、LRUアルゴリズムを使用して、最大利用可能なメモリを変更することができます

大容量データの保存に適しMongoDBは、行うには、オペレーティングシステムのメモリ管理VMに応じて、メモリもより強力で食べるには、一緒にいないサービスやその他のサービスを行います

4.可用性(シングルポイントの問題)

シングルポイントの問題については、

、コピーマスタから、依存全体のスナップショット、無増分レプリケーションであることが再接続各ノードからマスターノードによる性能及び効率に、Redisのは、分散読み出しを実現するために、クライアントに依存しています

だから、一点の問題はより複雑であり、自動シャーディング、一貫性のあるハッシュメカニズムを設定するためのプログラムに依存する必要性をサポートしていません。

独自のアクティブレプリケーション(複数の記憶)を使用して、独自のレプリケーション・メカニズムをRedisの、または増分コピー(独自の実装を必要とする)、一貫性と性能のトレードオフの方法を変更することなく、代替であります

メモリキャッシュは、データの冗長性を有していない、それは必要ではなく、故障の防止、使用または循環依存のための単一障害点に起因するジッタの問題を解決するためにハッシュアルゴリズムを成熟します。

MongoDBのサポートマスター・スレーブ、さらにreplicaSet(内部使用のPaxos選挙アルゴリズム、自動フェイルオーバー)、クライアント・フェイルオーバーおよびセグメンテーション・メカニズムを保護するために、自動シャーディングメカニズム。

5、信頼性(永続性)

データの永続性とデータ回復のために、

、依存スナップショットの持続、同時にAOF信頼性を向上させる性能に影響を与える:支持体(スナップショット、AOF)のRedis

memcacheのは、通常、パフォーマンスを改善するためにキャッシュで行われ、サポートしていません。

永続的な信頼性の使用をサポートするために、開始のbinlogの道からMongoDBのバージョン1.8

6、データの一貫性(トランザクションのサポート)

同時実行のシナリオでMemcacheのは、CASとの整合性を確保するために

Redisのトランザクションサポートのみを保証するために、比較的弱く、そのトランザクションの実行中に、各連続操作

MongoDBは、トランザクションをサポートしていません。

7、データ解析

MongoDBの内蔵データ解析機能(MapReduceの)、他の人がサポートしていません。

8、アプリケーションのシナリオ

Redisの:データ量が少ないと、よりパフォーマンス・コンピューティングを操作します

メモリキャッシュ:データベースに動的負荷を低減するためのシステムであって、性能を改善するために、キャッシュとしての性能向上のため(データの大きな量に対する読み出し及び書き込みのためにあまり適しては、シャーディングを使用することができます)

MongoDBは:主に大規模なデータ・アクセス効率の問題を解決するために

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/11880022.html