memcachedを知り尽くす

第1回 memcachedの基本

この記事を読むのに必要な時間:およそ 4 分

memcahedの導入

memchedの導入は比較的簡単です。ここではインストールについて解説します。

memcachedはさまざまなplatformで動作します。

  • Linux
  • FreeBSD
  • Solrais(memcached 1.2.5以上)
  • Mac OS X

また,Windowsにもインストールすることができます。 ここではFedora 8を利用して解説します。

memcachedのインストール

memcachedの動作には,最初に紹介したlibeventというライブラリが必要になります。Fedora 8にはrpmのパッケージが用意されているので,yumコマンドを利用してインストールしてしまいます。

$ sudo yum install libevent libevent-devel

memcachedのソースコードは,memcachedのサイトからダウンロードできます。執筆時の最新バージョンは1.2.5になります。Fedora 8ではmemcachedもrpmが用意されているのですが, バージョンが古く,ソースから簡単にインストールが可能なので今回はrpmを利用しません。

memcached: download
http://www.danga.com/memcached/download.bml

memcachedの導入は一般的なアプリケーションと同じく,configure,make,make installで完了です。

$ wget http://www.danga.com/memcached/dist/memcached-1.2.5.tar.gz
$ tar zxf memcached-1.2.5.tar.gz
$ cd memcached-1.2.5
$ ./configure
$ make
$ sudo make install

デフォルトでは,/usr/local/bin以下にmemcachedがインストールされます。

memcachedの起動

ターミナル上で次のコマンドを打つとmemcachedが起動します。

$ /usr/local/bin/memcached -p 11211 -m 64m -vv
slab class   1: chunk size     88 perslab 11915
slab class   2: chunk size    112 perslab  9362
slab class   3: chunk size    144 perslab  7281
中略
slab class  38: chunk size 391224 perslab     2
slab class  39: chunk size 489032 perslab     2
<23 server listening
<24 send buffer was 110592, now 268435456
<24 server listening (udp)
<24 server listening (udp)
<24 server listening (udp)
<24 server listening (udp)

debug用のメッセージがでてきましたが,これでTCPのPort 11211をlistenして,最大64MBのメモリーを利用するmemcachedがフォアグラウンドで起動しました。 debugメッセージの内容の多くはストレージについてのメッセージですが詳しくは次回の連載で説明いたします。

デーモンとしてバックグラウンドで起動する場合は,

$ /usr/local/bin/memcached -p 11211 -m 64m -d

とします。

ここで利用したmemcachedの起動オプションの内容は以下のようになります

オプション説明
-p利用するTCPのポート。デフォルトは11211
-m最大のメモリーサイズ。デフォルトは64MB
-vvvery verboseモードで起動してデバックメッセージやエラーをコンソールへ出力
-dmemcachedをデーモンとしてバックグラウンドで起動

memcachedのよく利用する起動オプションは上で紹介した4つになりますが,そのほかにもいくつかのオプションがあります。それらについては,

$ /usr/local/bin/memcached -h

とすると表示されます。memcachedのさまざまな動作を変更できるオプションもありますので一度目を通してみるとよいでしょう。

クライアントライブラリで接続する

memcachedに接続をするクライアントラブイラリには,PerlやPHPをはじめ,さまざまな言語の実装があります。memcachedのサイトに載っている言語だけでも,

  • Perl
  • PHP
  • Python
  • Ruby
  • C#
  • C/C++
  • Lua

などがあります。

memcached: client apis
http://www.danga.com/memcached/apis.bml

ここでは,mixiでも利用しているPerlのライブラリでのmemcachedへの接続方法を紹介いたします。

著者プロフィール

長野雅広(ながの まさひろ)

株式会社ミクシィ 開発部システム運用グループ アプリケーション運用チーム所属。mixiのアプリケーション運用に携わっています。Perlのカンファレンス,YAPC::Asia 2008でもmemcachedに関する発表を行いました。

URLhttp://blog.nomadscafe.jp/