ホームページ  >  記事  >  バックエンド開発  >  .net での Memcached のアプリケーション

.net での Memcached のアプリケーション

黄舟
黄舟オリジナル
2017-03-13 13:18:221374ブラウズ

1.サーバーのインストールと設定

1) c:memcached (任意の場所を選択することもできます)

3) 「c:memcachedmemcached.exe」と入力します。コマンド ラインで d start' を実行すると、Memcached が起動します。デフォルトのリスニング ポートは 11211 です

4) memcached.exe -h を通じてヘルプを表示できます

2 番目、クライアントのインストールとリファレンス


クライアントがサーバーを操作するには、多くのオプションがあります。ここでは、dll メソッドを使用することを選択します。これは、dll メソッドの生成が速く、構成ファイルでの面倒な設定が必要ないためです。の方が便利です。 Telnetコマンドなどはサーバー側でデータの確認やキャッシュヒット率の確認などに利用できます。


1. Dllの参照について

Dllをダウンロードした後、プロジェクトに示すように参照を追加してください
2、問題が発生する可能性があります

私はlog4netの導入 Memcached.ClientLibrayを使う際に導入し、クラスファイルにも追加しましたが、生成時にエラーが報告されました。後で、.netフレームワークのバージョンの問題であることが判明しました。下記のバージョンから.net Framework 4に変更すると正常に生成されました。

3 つ、Memcached メカニズムの詳細な理解

1、C/S アーキテクチャに基づいており、プロトコルはシンプルです

1) C/S アーキテクチャ、現時点では memcached はクライアントプログラムはmemcachedサーバーに接続します。

2) Memcached のサーバーとクライアントの通信は XML やその他の形式を使用せず、単純なテキスト行ベースのプロトコルを使用するため、Telnet を介して memcached にデータを保存したり取得したりすることもできます。

2、libevent に基づくイベント処理

1) Libevent は、Windows/Linux/BSD/Solaris などのオペレーティング システムのイベント処理と互換性のあるクロスプラットフォーム イベント処理インターフェイスのカプセル化です。システム。

2) Memcached は、libevent を使用して同時ネットワーク接続を処理します。これにより、同時実行数が多い状況でも迅速に応答する能力を維持できます。

3、内蔵メモリの保存方法

パフォーマンスを向上させるため、memcachedに保存されたデータはmemcahcedの内蔵メモリ保存領域に保存されます。データはメモリ内にのみ存在するため、memcached を再起動してオペレーティング システムを再起動すると、すべてのデータが消えます。また、コンテンツ容量が指定値に達すると、LRU(Least Recent Used)アルゴリズムに基づいて、未使用のキャッシュが自動的に削除されます。 Memcached 自体は、データをキャッシュし、非表示にし、データの永続性についてあまり考えないよう設計されたサーバーです。

4、クライアントベースの分散

Memcached は「分散」キャッシュ サーバーですが、サーバーには分散機能がありません。個々の memcached は、情報を共有するために相互に通信しません。したがって、配布の実行方法は完全にクライアントの実装に依存します。興味がある場合は、Baidu からハッシュ アルゴリズムをダウンロードできます。


コードエクスペリエンス: 4 つ、memcached と session

1) さまざまなライフサイクル

2) 解決すべき問題の焦点が異なります

5番目に、memcachedとCache

キャッシュが使用されます。 Net の状態管理機能も非常に強力だと感じます。 1. キャッシュの依存関係: ファイル、データベース、または依存関係の組み合わせに依存でき、データの有効期限の通知メカニズムを提供して、有効期限が切れたときにデータを更新しやすくします。 。 2. 通知メカニズムの使用: 以前は、データの有効期限が切れたかどうかを判断するためにポーリング メカニズムが使用されていました。これは、データが更新されたかどうかを確認するためのループに似ていました。更新されていた場合は、この時点でキャッシュが更新されました。時間。しかし、私はポーリングの仕組みがとても奇妙だといつも感じています。たとえば、家で鍋に水を沸騰させるとき、常に水が沸騰しているかどうかを確認する必要はありませんが、水が沸騰しているかどうかを確認してから沸騰させる必要があります。音は水が沸騰していることを教えてくれます。これが通知機構の意味です。通知機構の原理としては、23 種類の設計パターンの中でよく使われるオブザーバー パターンを確認できます。

私が初めて memcached を使用したとき、キャッシュの理由から、この通知メカニズムを自然に思いつきました。調べてみると、期限切れの更新を自分で作成したい場合は、memcached にはこれがないようです。ポーリングメカニズム。しかし、memcached の使用シナリオを考えると、有効期限は十分であることがわかります。

6 つの memcached 適用シナリオ

1) リアルタイムで保存する必要のない、頻繁に変更される不安定なデータ (ユーザーのオンライン ステータス、オンライン人数など)

2) からのニュースポータルサイト 待って、静的ページではまだ要件を満たしていないようなので、memcached に入れます (jquery の ajax リクエストと連携)

...

七、memcached のセキュリティ問題

memcached には認証メカニズムが組み込まれていないため、Telnet を使用して IP+ポートにアクセスすることでログインでき、内部のデータは子羊になります。屠殺された。ハッキングを避けるために、memcached サーバーの外部アクセス ポートを閉じて、ローカル プログラムのみにアクセスを許可することができます。

8、同様のテクノロジーの比較

1、Redis

1) より多くの値の型をサポートします

2) 永続性: Redis は更新されたデータを定期的にディスクに書き込むか、変更操作をレコード ファイルを追加し、これに基づいてマスターとスレーブ (マスターとスレーブ) の同期を実現します

3) マスターとスレーブの同期をサポート: データはマスター サーバーから任意の数のスレーブ サーバーに同期でき、スレーブ サーバーは他のスレーブ サーバーに関連付けられたマスター サーバー。これにより、Redis は単一レベルのツリー レプリケーションを実行できるようになります。保存すると、意図的または非意図的にデータが書き込まれる可能性があります。パブリッシュ/サブスクライブ メカニズムが完全に実装されているため、スレーブ データベースが任意の場所でツリーを同期すると、チャネルにサブスクライブして、マスター サーバーの完全なメッセージ リリース レコードを受信できます。同期は、読み取り操作のスケーラビリティとデータ冗長性に役立ちます。

2、EhCache

1) 高速かつ高機能な純粋な Java インプロセス キャッシュ フレームワークであり、Hibernate のデフォルトの CacheProvider です。

2) オープンソース Java 分散キャッシュ: 主に一般キャッシュ、Java EE、軽量コンテナ用。メモリとディスク ストレージ、キャッシュ ローダー、キャッシュ拡張機能、キャッシュ例外ハンドラー、gzip キャッシュ サーブレット フィルター、REST API および SOAP API のサポートなどを備えています。

。 。 。 。 。 。 。 。 。

上記は .net の Memcached アプリケーションのコンテンツです。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。