分散キャッシュ
今お仕事で興味が湧いてるものがあります。それは、『分散キャッシュ』技術です。何がいいかなーと思いつつ、分散キャッシュでメジャーなソフトである『memcached』を試してみることにしました。
とりあえず、以下の環境を構築しました。
- OS:Windows Server 2012 Standard Edition
- 分散キャッシュ:memcached Windows x64版
memcachedのインストール方法は下記の通りです。
- ここからmemcached-win64.zipをダウンロードする。
- zipファイルを解凍して、適当な場所にコピーし、DOSプロンプト上で『memcached.exe -d install』を実行する。
- 上記のコマンド実行後、サービスとして登録されるので、『コントロール パネル』→『管理ツール』→『サービス』を起動する。
- サービス一覧より、『memcached』を右クリックし、『開始』をクリックする。
上記の操作で、『memcached』のインストールからサービス起動までが完了しました。
.NETクライアントから接続するのは、今度試してみたいと思います。(ちょっと眠くて力尽きました...)
以下、追記(2013.3.19)
- ここからNMemcached.Client 1.2 をダウンロードします。
- ダウンロードしたファイルを解凍し、『NMemcached.Client.dll』を適当な場所にコピーします。
- Visual Studioでプロジェクトを作成し、参照設定で『NMemcached.Client.dll』を設定します。
- usingに『NMemcached.Client;』を追加します。
- 下記のコードを記述します。
//memcachedが稼働しているサーバを指定します。
var client = new MemcachedClient("192.168.32.131");
//testというキーでtest dataというデータをキャッシュします。
var response = client.Set("test", "test data");
//testというキーでデータを取り出します。
var obj = client.Get("test");
キャッシュサーバを分散させる場合には、MemcachedClientのコンストラクタ引数にstringの配列で渡せばいいみたいですね。有効期限などもSetメソッドの第三引数に時間を設定するとキャッシュの有効期限が指定できます。
キャッシュクライアントの機能として、
- Text and binary Memcached protocol support
- Dead server detection
- Asynchronous command support
- Data compression
- Automatic object serialization
- TCP と UDP のソケット (UDP バイナリ プロトコル接続のみをサポート) 接続
- テキストとバイナリの Memcached のプロトコルのサポート
- サーバーの死活検出
- 非同期コマンドのサポート
- データ圧縮
- オブジェクトの自動シリアル化
他にも色々機能があるみたいです。色々試したくなりますねー。
次回は、サーバを分散させて実験してみよう。(かな?)