Windowsにmemcachedをインストールした際のメモです。
memcachedのインストール
まず、Windows用のバイナリを次からダウンロードします。バージョン1.4.5以降はWindowsのサービスへの登録に手間が掛るので、今回は1.4.4をダウンロードします。
http://downloads.northscale.com/memcached-win32-1.4.4-14.zip
ダウンロードしたZIPファイルを展開し、適当な場所に配置します。
C:\memcached
管理者権限でコマンドプロンプトを立ち上げ、上記のフォルダに移動します。
> cd C:\memcached
次のコマンドでmemcachedをWindowsのサービスとして登録します。
> memcached.exe -d install
登録が完了したら、サービスを起動します。
> memcached.exe -d start
以上でMemcachedのインストールは完了です。
サービスの停止およびアンインストールの際は、次のコマンドを使用します。
> memcached.exe -d stop
> memcached.exe -d uninstall
memcachedへの接続
memcachedに接続して状態を確認するには、Telnetを利用するのが便利です。
Telnetを起動するには、コマンドプロンプトでtelnetコマンドを実行します。memcachedのポートは標準で11211になります。
> telnet localhost 11211
telnetコマンドが見当たらない方は、「Windowsの機能の有効化または無効化」から「Telnetクライアント」をインストールすることで使用できるようになります。
接続後、memcachedの各コマンドを利用できるようになります。
64 bit版のバグ?
上記NorthScaleのサイトからは64 bit版のバイナリもダウンロードすることができます。
http://downloads.northscale.com/memcached-win64-1.4.4-14.zip
ただ、環境に固有の問題かもしれませんが、内部のタイムスタンプにバグがあるように思われます。
そのため、memcachedに値を登録する際にうまく有効期限を設定できないトラブルに見舞われました。memcachedでは、30日以内に関しては期限切れまでの秒数、それ以降に関してはUNIXタイムスタンプで期限の日時を指定する仕様になっているのですが、UNIXタイムスタンプで指定した場合に即座に期限切れになってしまう問題が発生しました。
最初は原因が分からず大変苦労しましたが、Telnetで接続後、statsコマンドを使用したところ、memcachedサーバーの時刻と起動からの経過時間の値がおかしなことになっていることに気付きました。