memcached
Ubuntuへのインストール
memcachedのインストール
$ sudo apt update
$ sudo apt install memcached
ついでに、memcachedを操作するツールのインストール(memcached本体の動作には不要。試しに触ってみる時に便利なので、任意でインストールすると良い)
$ sudo apt install libmemcached-tools
インストール完了すると、自動的にmemcachedプログラムが実行され、以降再起動時も自動実行されるようになる。
以下のコマンドを打って、 Active: active (running) と表示されれば、正常にプログラムが動いている。つまり、DB(memcached)へのデータの読み書きが既にできる状態になっている。
$ sudo systemctl status memcached.service
プログラムを停止したい場合は以下を実行する
$ sudo systemctl stop memcached.service
再起動時の自動起動をOFFにしたい場合は以下を実行する
$ sudo systemctl disable memcached.service
デフォルトポート番号は11211である。
また、デフォルトの待受IPは127.0.0.1 (ループバックアドレス)となっている。同一ホスト内から127.0.0.1を指定して接続することはできるが、外部からは接続できない状態である。
/etc/memcached.conf に設定ファイルがあり、 -l という項目を消す(先頭に#を付けてコメントアウトする)と、外部からも接続できるようになる。
設定ファイルを書き換えた場合は、以下コマンドでmemcachedを再起動する。
$ sudo systemctl restart memcached.service
動作確認
Telnet接続による動作確認については、こちらの記事が参考になる。 libmemcached-toolsによる動作確認の例
$ memcping --servers="localhost:11211"
エラー時にメッセージが表示される(らしい)。何も表示されなければOK。
$ memcdump --servers="localhost:11211"
DBに保存済みのキーがあれば、表示される
$ memccat --servers="localhost:11211" キー
保存済みのキーを指定して、バリューを表示できる
Javaプログラムからmemachedを使う
spymemcachedというクライアントライブラリがよく使われている模様。
Mavenリポジトリ
JavaDoc
GradleやMaven等のビルドツールで、spymemcachedを使うように設定すれば良い。
以下はspymemcachedを使ってmemcachedにアクセスするプログラムのサンプル。「IPアドレス」の部分は、memcachedを動かしているホストのIPアドレスを入れる。
code: spymemcachedサンプル
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeUnit;
import net.spy.memcached.MemcachedClient;
public class Main {
public void proc() throws IOException {
System.out.println("memcachedクライアントのサンプル");
MemcachedClient memcachedClient = new MemcachedClient(new InetSocketAddress("IPアドレス", 11211));
memcachedClient.set("key001", 0, "value001");
String result = memcachedClient.get("key001").toString();
System.out.println(result);
memcachedClient.shutdown(1, TimeUnit.SECONDS);
}
public static void main(String[] args) {
Main test = new Main();
try {
test.proc();
} catch (IOException e) {
e.printStackTrace();
}
}
}