差Redisの、MemcacheのとMongoDBの

>>のMemcached

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

Redisの>>

Redisの利点:
文字列などのデータ構造、(文字列)の様々な支援、リスト(二重リンクリスト)、辞書(ハッシュテーブル)、SET(セット)、ZSET(順序集合)、hyperloglog(基数の見積もりは)
永続性操作をサポートし、ディスクへのRDBデータの永続性、データのバックアップやデータ復旧操作AOFすることができ、データの損失を防ぐため、より良い意味します。
レプリケーションを介してデータの複製をサポート,,リアルタイムデータレプリケーション、マルチレベルのレプリケーションおよび増分複製のためのマスタ-スレーブ同期機構によって行うことができ、マスタ・スレーブ機構は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ときCUD操作のコースの(データ)で、ユーザーがディスクに書き込まれるレコードを追加するときに、コードを読んでいるので、それは、プレスのMongoDB開発者が言うので、それはパフォーマンス上の磨耗を引き起こすことはありません、ではないために、発見されたレコード(レコードタイプ)の書き込みをコミットバルク遅延(groupcommit)のために延期することをキューに入れられ、パラメータが真剣に検討すべきパラメータである時間帯れると考えられている、システム90ミリ秒で、値が低い場合、それはかもしれません高すぎる、あまりにもデータ損失の原因となります時に頻繁にディスク操作、システムのダウンタイムが発生します。

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

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

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

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

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

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

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

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

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

 

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

Redisの、memcacheのの以下の寸法から、MongoDBは、比較を行います

1、パフォーマンス

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

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

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

memcacheの単一のデータ構造

Redisの優れたリッチRedisのデータ操作のいくつかの側面、少ないネットワークIO倍

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

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

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

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

大容量データの保存に適しMongoDBは、オペレーティングシステムのメモリ管理VMに応じて、メモリもより強力で食べて、行うために一緒にサービスを提供し、他のサービスはありません

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

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

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

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

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

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

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

5、信頼性(永続性)

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

Redisのサポート(スナップショット、AOF):依存スナップショットの永続性は、信頼性を向上させると同時にAOF、パフォーマンスに影響を与えます

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

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

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

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

Redisのトランザクション・サポートは、トランザクション実行中の各連続操作のことを確保するため、比較的弱いです

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

7、データ解析

MongoDBの組み込みデータ分析機能(MapReduceの)、他の人がサポートしていません。

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

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

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

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

表の比較:
memcacheのRedisの

メモリデータベースメモリデータベースの種類
は、データ型を定義するときに固定値が考えを必要としないデータ型を
文字列、リスト、セットを持っている、とのセット注文した
仮想メモリのサポートサポートしていません
サポートするために、有効期限ポリシーのサポートを
分散magentのマスタースレーブをマスタースレーブまたはマスターマルチスレーブ
ストアデータがdump.rdbを節約するために、セキュアストレージの使用をサポートしていない
災害復旧は追記のみのデータ回復のために(AOF)ファイルはサポートされていない
パフォーマンス
1、Redisの型--memcache、メモリに保存されているすべてのデータは、それがありますメモリデータベース。もちろん、memcacheのキャッシュはまた、このような絵など多くの他のもののために使用することができます。
図2に示すように、データ・タイプは、データのバイト長を指定するために必要なデータを追加--Memcache、そしてRedisのは必須ではありません。
3、仮想メモリ-物理メモリがなくなったとき、長い無用の一部が値を使用すると、ディスクにスワップすることができます。
4、有効期限ポリシーをセットで指定を--memcache、例えば、キー1 0 0 8を設定し、つまりは有効期限が切れることはありません。Redisのを渡すことができ
、例えば名前10を期限切れに、例えばセットを期限切れ介し。
図5に示すように、分散- memcacheのクラスタ・セットを、マルチマスターから作らmagentを使用して、Redisのマルチマスタから行うことができます。Douke
マスタースレーブで。
図6は、データセキュリティ--memcache停電カットオフを格納し、データはしませんでした。Redisのは、定期的にディスクに保存することができます。
7、災害復旧--memcacheは上記、Redisのは、失われた後にAOFによって復元することができます。
Memecacheポート11211
yumのmemcachedの-Yをインストール
yumをインストールPHP - Y-PECL memcacheのは
memcachedのmemcachedの-d -p -m -u 11211 1024年64 -C -P /var/run/memcached/memcached.pidを開始/etc/init.d/memcached
デーモン開始-d
-pポート
-m割り当てられたメモリはMである
-c -P memcacheのPIDの同時実行の最大数
(MEMCACHE_COMPRESSEDがあれば)30ミャオ族の有効期限// 0圧縮
// 5を削除しているタイムアウト<?PHP
の$ memcacheのmemcacheの新しい新しい=; $ memcacheの- >接続( '127.0.0.1'、11211); $ memcacheの- > SET( '名前'、 'ヤン'、0,30);
!IF($ memcache->追加( '名前' 'スーザン'、0、30)){
//エコー'スーザンはIS存在';メモリキャッシュ} $ - >( '名前'、 'ライオン'、0、300)を交換し、$ memcacheのエコー- > GET( 'name'の);
// $ memcacheの- >( '名' ,. 5)削除;
printfの"統計\ R&LT \ N-"|ノースカロライナの127.0.0.1 11211個
のTelnet localhostの11211の統計は終了終了します
Redisの設定ファイルポート6379
Redisの開始/etc/redis.conf
のRedis-Serverは、値の挿入/etc/redis.conf
テスト"phper.yang"取得キーのRedis-cliのセット
のRedis-CLIはテスト近いRedisの取得
のRedis-cliのシャットダウンをすべて閉じ
Redisの-CLI 6379 -pシャットダウン<PHP?
$ = RedisのRedisの新しい新しい(); $ redis->接続( '127.0.0.1'、6379); $ redis-> SET( 'テスト'、 'Hello Worldの') ;エコー$ redis-> GET( 'テスト'); MongoDBの
インストールモンゴモンゴシェルのコマンドラインを入力することができますAPT-GET
PECLインストールモンゴのMongoDB同様のphpmyadminのプラットフォームRockMongo

 

 

 

Redisのは、高性能、非リレーショナルデータベースキー値です。これは、いくつかの状況では、リレーショナル・データベースへの非常に良い補完を再生することができます。これは、Java、C / C ++、C#の、PHPやJavaScript、Perlやオブジェクト-C、Pythonの、ルビー、アーランと他のクライアント、非常に使いやすいを提供します。

 

文字列、ハッシュ、リスト、セットおよびZSET(ソートセット):Redisのは、5つのデータ型を提供しています。

 

まあ、あまり話をしなかった、Redisのそれをインストールしてください。ここで提供私のバージョンは3.2.1.00の64ある  https://files.cnblogs.com/files/wangjifeng23/Redis-x64-3.2.100.zip 、残りは公式サイトのバージョンのダウンロードに行くことができます  //download.redisます。http .IO /リリース/ 

 

ダウンロードが良いです後、新しいフォルダは、ファイルを解凍します。

完成開梱後、Redisのインストールを開始します。

  1. cmdを入力

  2.ポイントRedisのインストールパスF: - > CDのRedisの

       インストール手順のRedisサーバredis.windows.conf、次のアイコンが正常にインストールされて3.redis

 

オープンRedisのクライアントツール(Redisの-cli.exe)

使用セットは、すなわち、成功した使用を、以下の設定値を取得します

 

まあ、使いやすさのために、我々は、自己始動の上にRedisのサービスを展開して、サードパーティ製クライアントソフトウェアのRedisDesktopManager(ダウンロードリンク:https://pan.baidu.com/s/1DAWFwlZQK0AJphOQEHQaXAパスワード:jr5r)を使用することができます管理、開発者が簡単にできます。

Redisのサーバー--serviceインストールredis.windows.conf:上に示したCMDコマンドタイプを使用します

 

Open Clientの、接続を作成するのRedisサービスがポート6379(マスターサーバー)上にあることを確認するために接続する前に、ローカルホスト(マシン・サービス)を入力します。

 

我々は成功した友人が接続されていることを、以下に示す証明として、私は4キーと値のペアのストアデータを残しました。

 

 

まあ、我々は彼の店とアクセスコードで達成したいです。

 Microsoftが提供される使用NuGetインストールServiceStack.Redisは、Redisのアクションクラス用にパッケージされています。これは、4つのDLLが含まれています

 

Redisの接続サーバ、読み込み・保存

コードをコピー
コードをコピー
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace redis
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        public static ServiceStack.Redis.RedisClient client = new ServiceStack.Redis.RedisClient("127.0.0.1", 6379);

        public void login(object sender, EventArgs e)
        {
            //读取
            string name = client.Get<string>("name");
            string pwd = client.Get<string>("password");

            //存储
            client.Set <文字列>( "NAME1"、username.Value)。
            client.Set <文字列>( "パスワード1"、userpwd.Value)。
        } 
    } 
}
コードをコピー
コードをコピー

要約:

また、記憶リスト、セット、ZSET、ハッシュおよび他のデータ構造を提供しながら1、Redisののみ、データの単純なK / V・タイプをサポートします。
2、Redisのバックアップデータ、すなわち、データのバックアップマスタ・スレーブモードをサポートします。
3、Redisのは、データの永続性をサポートしていますが、再度使用するロードすることができたときに、メモリ内のデータがディスク上に保存することができ、再起動してください。
4、Redisのは、マスター・スレーブレプリケーション、フェイルオーバーおよびフェイルバックを実現することができます。
5、Redisのシャーディング技術:データ・インスタンスの複数のRedisに分配されやすいです

おすすめ

転載: www.cnblogs.com/Alex80/p/11597479.html