memcachedをUbuntu上で動かす
インストール
Google Code Archive - Long-term storage for Google Code Project Hosting.
eiichi@ubuntu-desktop:~$ sudo apt-get install memcached
起動確認
eiichi@ubuntu-desktop:~$ service --status-all | grep memcached
設定ファイル
eiichi@ubuntu-desktop:~$ sudo vi /etc/memcached.conf
ファイルをちらっと編集
.... #はじめは、動作確認したいので、ログを細かくだす。 -vv .... #このホストのIPアドレスを与える。 -l 192.168.2.50 ....
IPアドレスが、デフォルトの127.0.0.1だと、ローカルからしか接続できないみたい。
別のPCから接続できず、Ubuntuのファイアウォールとかネットワークのセキュリティかなにかのせいだと思って、むだにはまってしまった。
ログファイル
eiichi@ubuntu-desktop:~$ tail -f /var/log/memcached.log
再起動
eiichi@ubuntu-desktop:~$ sudo service memcached restart
動作確認 ローカルからtelnetでコマンドをつかってみる。
eiichi@ubuntu-desktop:~$ telnet 127.0.0.1 11211 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused
おっと、接続できない。
eiichi@ubuntu-desktop:~$ telnet 192.168.2.50 11211 Trying 192.168.2.50... Connected to 192.168.2.50. Escape character is '^]'.
おっと、接続できたようだ。コマンドを打ってみる。
stats STAT pid 7792 STAT uptime 1944 STAT time 1326564549 STAT version 1.4.5 STAT pointer_size 32 STAT rusage_user 0.160010 STAT rusage_system 0.564035 STAT curr_connections 7 STAT total_connections 11 STAT connection_structures 9 STAT cmd_get 4 STAT cmd_set 3 STAT cmd_flush 0 STAT get_hits 4 STAT get_misses 0 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 5849 STAT bytes_written 11221 STAT limit_maxbytes 67108864 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT bytes 186 STAT curr_items 3 STAT total_items 3 STAT evictions 0 STAT reclaimed 0 END set key1 0 0 5 test1 STORED get key1 VALUE key1 0 5 test1 END
動作確認 リモートからクライアントライブラリをつかってみる。
検索して見つけた以下のライブラリを試してみる。
Memcached-Java-Client
GitHub - gwhalin/Memcached-Java-Client: Information about this project lives on the wiki
セットアップは、ライブラリをダウンロードして、jarをクラスパスにとおすだけ。
Eclipseでプロジェクトをつくれば、かんたん。
Memcached-Java-Client/HOWTO.txt at master · gwhalin/Memcached-Java-Client · GitHubのソースコードを自分の環境に合わせつつ、ちょっぴり修正して、実行してみると
.... String[] servers = { "192.168.2.50:11211" }; Integer[] weights = { 1 }; .... public static void examples() { mcc.set("bar", "This is a test String"); String bar = (String) mcc.get("bar"); System.out.println("bar=" + bar); } public static void main(String[] args) { MyClass.examples(); }
実行すると、コンソールに期待通り以下が表示された。
bar=This is a test String
JavaからMemcachedを読み書きする。キーと値の一覧を取得する。 - kaishitaeiichiの日記もうちょっと書き足してみた
xmemcached
Google Code Archive - Long-term storage for Google Code Project Hosting.
セットアップは、ライブラリをダウンロードして、jarをクラスパスにとおすだけ。SLF4Jのjarは、実装クラスが足りないようなので、さらに、SLF4Jのページからダウンロードが必要なのかな。
Eclipseでプロジェクトをつくれば、かんたん。
Google Code Archive - Long-term storage for Google Code Project Hosting.のソースコードを自分の環境に合わせつつ、ちょっぴり修正して、実行してみると
.... MemcachedClient client = new XMemcachedClient("192.168.2.50", 11211); .... System.out.println("someObject=" + someObject); ....
実行すると、コンソールに期待通り以下が表示された。
someObject=test
spymemcached
Google Code Archive - Long-term storage for Google Code Project Hosting.
セットアップは、ライブラリをダウンロードして、jarをクラスパスにとおすだけ。
Eclipseでプロジェクトをつくれば、かんたん。
Google Code Archive - Long-term storage for Google Code Project Hosting.のソースコードを自分の環境に合わせつつ、ちょっぴり修正して、実行してみると
.... MemcachedClient client = new MemcachedClient(new InetSocketAddress( "192.168.2.50", 11211)); client.set("foo", 3600, "bar"); Object value = client.get("foo"); System.out.println("value=" + value); ....
実行すると、コンソールに期待通り以下が表示された。
2012-04-07 00:38:09.136 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/192.168.2.50:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue 2012-04-07 00:38:09.141 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@85af80 value=bar