Debian WheezyでmemcachedをインストールしRubyから接続する
タグ: linux server ruby / 初版公開: 2013-12-17

Debianであればmemcachedパッケージをaptでインストールできる。 Debian Wheezyのmemcachedパッケージのバージョンは1.4.13である。 本エントリ執筆時の最新版である1.14.16よりやや古いが、そこは気にせずにインストールすることにする。

apt-get install memcached

これで問題なくmemcachedサービスが動作し始めるが、せっかくなのでプログラムからの接続もテストしてみよう。 このエントリではRubyからmemcachedを使ってみることにする。

Rubyからmemcachedを利用するには、memcachedというgemをインストールすれば良い。 なおgemのmemcachedは現時点でRuby 1.8.7か1.9.2でのみ動作を保証していることに注意する。 gemのmemcachedはlibsasl2というライブラリに依存するネイティブエクステンションである。 このためlibsasl2-devをaptから事前にインストールしておく。

apt-get install libsasl2-dev
gem install memcached

次にmemcachedを使ったプログラムを用意して、実行してみよう。 以下はつまらないが、fooというキーに、barという文字列を格納して、それを取得する例である。

require 'memcached'
cache = Memcached.new() # Memcached.new("localhost:11211")
cache.set 'foo', 'bar'
p cache.get 'foo' # => 'bar'

memcachedを使うためにmemcachedrequireしておく。 memcachedに接続するにはMemcached.newでアクセス用のオブジェクトを生成する。 Memcached.newはデフォルトでlocalhost:11211に接続するので特に引数は不要である。 あとはMemcachedのインスタンスメソッド、setおよびgetで、値の格納と取得が行える。

このスクリプトを実行してbarが表示されれば成功である。 なおmemcachedに接続できない場合は、setの時点でMemcached::ServerIsMarkedDead例外が発生する。