C#Memcacheのクラスタリング概念、クライアントの構成を詳細に分析

アウトライン

  メモリキャッシュは、オープンソースの分散キャッシング・システムの集合です。そして、デーモン(モニタ)でのサービス構成により、クライアントは、クライアントの接続と操作を受信する準備ができて、1つ以上のサーバー上で実行します。巨大なハッシュテーブルに統合メモリを維持することによって、メモリにキャッシュされた主対象データをメモリキャッシュ。簡単に言えば、それはこのように大幅に読み出し速度を向上させること、メモリにデータを呼び出し、その後、メモリから読み出すことです。メモリキャッシュオブジェクトストアのキー/値のペアのハッシュマップに基づいて、メモリに格納されます。memcacheのはCで書かれているが、クライアントは任意の言語で記述することができ、memcachedのデーモン通信との合意によって。

特徴:  
  データのMemcachedに保存することができます•ボリューム項目は限り十分なメモリとして、制限はありません。
  •64ビットシステム上の制限がない場合、これは、1つのプロセスがより多くのメモリを使用するために、2Gのメモリを使用でき、32ビットのシステムに起因する制限された複数のポートに分割することができ、最大2Gに32ビットのシステム・メモリを使用して、単一のプロセスをMemcachedの複数のプロセスを開くmemcachedの。
  •データの有効期限の30日まで、永久的なこの時点で有効期限が切れるを設定します、定数REALTIME_MAXDELTA
  データの最大の単一の項目•は1MBです、ないデータストレージの1メガバイト、制御定数のPOWER_BLOCK 1048576より

Memcacheのクラスタリングコンセプト

  Memcacheの:クライアント主導型のクラスタによって実現しました。Redisの、MongoDBの:達成サーバ側クラスタ; Memcacheのドライバ初期化時間は、コレクションに設定することができる、など

1   []サーバー= { " 172.20.10.7:11211 "" 172.20.10.8:11211 " }。

クラスタダイアグラムのドライバ

Memcacheの長所と短所:

  1は、永続として保存することはできません

  図2に示すように、データストレージが限られている:1M [1Mより大きい、人工分割]

  3、唯一のキーと値のストア

  図4は、どのクラスタデータの複製と同期化機構は存在しません。[ベンの崩壊は、プログラムには影響しません、何のマスタースレーブのレプリケーション(複製なし追加のオーバーヘッドは)ありません]

  5、メモリリコールは、非常にタイムリーLRUではありません。未使用のメモリが>期限切れのメモリ>メモリは、不活性最低使用(も考慮欠点を)削除します

  さて、私たちが今知っているそれで何をするMemcacheについて、実際には、非常に単純な、ブログで私の記事を参照してくださいます。https://www.cnblogs.com/chenyanbin/p/11415368.html

コードの実装:

  1.クライアントライブラリDLLをダウンロード

    住所:HTTPS://sourceforge.net/projects/memcacheddotnet/

    Baiduのクラウドディスク:

      リンクします。https://pan.baidu.com/s/1tIkdYdp8rkKtXMeOeT24AAの
      抽出コード:5yk2

  2、ライブラリーの導入

   図3に示すように、参照を追加

  図4に示すように、コード

1              // memcachedサーバのIPポートを分散
2               [] = {サーバー" 172.20.10.7:11211 " }; // MemcacheのマシンIP
 3。             // プールを初期化する
4。              SockIOPoolプール= SockIOPool.GetInstance();
 5              pool.SetServers(サーバ); // 関連付けられた接続プール
6              pool.InitConnectionsの= 3 ; // リンクを初期化
7。              pool.MinConnectionsの= 3 ; // 接続の最小数
。8              pool.MaxConnectionsの= 5 ; //接続の最大数
9。              = pool.SocketConnectTimeout 1000年 ; // ソケット接続タイムアウト期間
10              = pool.SocketTimeout 3000 ; // ソケットタイムアウト
。11              pool.MaintenanceSleep = 30 ; // ソケットスリープ時間
12は              pool.Failover = trueに13である              プール。 =ネーグルfalseに14              pool.Initialize(); // 初期化
 15              // クライアントの例
16              MemcachedClient MC = 新しい新)(MemcachedClientします。
17              mc.EnableCompression =  ; // 圧縮開始
18              (mc.Addを" keykey "" valuevalue "); // 追加
 19              // mc.Delete( "keykeyを"); // 削除し
 20              // mc.Setを( ""、 ""); //が設定
 21              // mc.Getを( ""); // 取得

実装:

 

成功

 

 

DEMOの例

リンクします。https://pan.baidu.com/s/1QhHEO71jMDCbZ72lbFNNcw
抽出コード:0a5i

あなたは、助けこの記事ヘルプは、次をお勧めしている場合、〜以下のコメントを歓迎する場所がわかりません

おすすめ

転載: www.cnblogs.com/chenyanbin/p/11441490.html