memcached資料一覧

memcachedインストール手順

2008/9/1更新

対応バージョン: 1.2.6

公式サイト

準備

あらかじめインストールしておくもの

libevent

導入OS

Mac OS X 10.5(Leopard)
Fedora 9

管理用アカウント作成

memcachedはrootで実行できないので既存のアカウントで実行するか専用のアカウントを用意してそのアカウントで実行する。ここでは専用のアカウントを作成する。

(Mac OS X)

% sudo dscl . -list /Groups PrimaryGroupID | sort -k 2 -n (空きGIDを調べる)
% sudo dscl . -create /Groups/memcached PrimaryGroupID <GID>

% sudo dscl . -list /Users UniqueID | sort -k 2 -n (空きUIDを調べる)
% sudo dscl . -create /Users/memcached
% sudo dscl . -create /Users/memcached RealName memcached
% sudo dscl . -create /Users/memcached UniqueID <UID>
% sudo dscl . -create /Users/memcached PrimaryGroupID <GID>
% sudo dscl . -create /Users/memcached UserShell /sbin/nologin
% sudo dscl . -create /Users/memcached Password '*'

関連資料・記事

(Fedora)

% sudo groupadd memcached
% sudo useradd -g memcached -s /sbin/nologin -d /nonexistent memcached

インストール

配布ファイル展開

% tar zxvf memcached-1.2.6.tar.gz
% cd memcached-1.2.6

make,インストール

% ./configure
% make
% sudo make install

インストール物 (man,infoは除く)

/usr/local/bin/memcached
/usr/local/bin/memcached-debug

動作確認

memcachedを起動する。

% memcached -u memcached -d

まずは-dオプションにてデーモンモードでmemcachedを起動する。

その他、主なオプションを以下に示す。

-m <キャッシュメモリ容量>

デフォルトは64(単位はMB)。

-l <待ち受けネットワークインタフェース>

デフォルトはINDRR_ANY。

-p

デフォルトは11211。

-u <デーモン実行ユーザ>

rootでデーモンを起動する際にデーモン実行ユーザを指定する。

例) キャッシュ = 1GB、接続許可ホスト = ローカルホスト

% memcached -u memcached -d -m 1024 -l 127.0.0.1

次にmemcachedに接続する。

statsコマンドにてmemcachedの動作状況を確認する。

% telnet localhost 11211
stats
STAT pid 34304
STAT uptime 26
STAT time 1220202726
STAT version 1.2.6
STAT pointer_size 32
STAT rusage_user 0.000660
STAT rusage_system 0.001495
STAT curr_items 0
STAT total_items 0
STAT bytes 0
STAT curr_connections 3
STAT total_connections 4
STAT connection_structures 4
STAT cmd_get 0
STAT cmd_set 0
STAT get_hits 0
STAT get_misses 0
STAT evictions 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT threads 1
END

上記のような結果が返ってくれば正常に動作している。接続を切断するには「quit」と入力する。

memcachedに接続したら実際に値の格納/取得を行ってみる。

コマンドには様々な種類があるが、ここではset(値の格納)とget(値の取得)を使ってみる.

コマンドは以下のフォーマットで指定する。

<コマンド> <キー> <圧縮フラグ(1 or 0)> <有効期間(単位:秒)> <サイズ(単位:Bytes)>

例) 「foo」というキーに「123」という3バイトのデータを非圧縮(0)/無期限(0)で格納する。またそれを取り出す。

set foo 0 0 3
123

=> STORED

get foo

=> VALUE foo 0 3
=> 123
=> END

quit

コマンド一覧は以下を参照。

関連資料・記事

memcachedを終了する。

単にkillすればよい。

% sudo killall memcached

memcached起動設定

ここでは起動オプションを以下のとおりとする。

起動モード

-d (デーモンモード)

デーモン実行ユーザ

memcached

キャッシュサイズ

64(MB)

plist作成(Mac OS X)

/Library/LaunchDaemons/memcached.plistを作成する。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>memcached</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/bin/memcached</string>
                <string>-d</string>
                <string>-u</string>
                <string>memcached</string>
                <string>-m</string>
                <string>64</string>
        </array>
</dict>
</plist>

initスクリプト作成(Fedora)

/etc/rc.d/init.d/memcachedを作成する。

#!/bin/bash
#
# memcached
#
# chkconfig: 345 80 20
# description: memcached

TARGET=memcached
DST_BIN=/usr/local/bin/${TARGET}
EXEC_USER=memcached
CACHE_SIZE=64

start()
{
  echo -n "Starting ${TARGET}: "
  ${DST_BIN} -d -u ${EXEC_USER} -m ${CACHE_SIZE}
  echo
}

stop()
{
  echo -n "Shutting down ${TARGET}: "
  killall ${TARGET}
  echo
}

case "$1" in
  start)
    start
    ;;

  stop)
    stop
    ;;

  restart)
    stop
    start
    ;;

  *)
    echo "Usage: `basename $0` {start|stop|restart}" >&2
    exit 1
esac

exit 0

サービス登録/起動

(Mac OS X)

% sudo launchctl load /Library/LaunchDaemons/memcached.plist
% sudo launchctl start memcached

(Fedora)

% sudo chkconfig --add memcached
% sudo chkconfig --list memcached
memcached  0:off  1:off  2:off  3:on  4:on  5:on  6:off
% sudo service memcached start