LoginSignup
6
6

More than 5 years have passed since last update.

memcached をレプリケーションする repcached を CentOS6.7 にインストールする

Last updated at Posted at 2016-01-28

repcached とは?

memcached に Replication 機能を追加します。
Ver2以降では マルチマスターで動作します。

使い方などは別の記事で書いてみます。
今回インストール方法は解説します。

インストール手順

1. 必要なライブラリをインストールする

sudo su -

## 必要なライブラリをインストール
yum install libevent libevent-devel

## Compileする環境がインストルされていない時は以下もインストールする
yum install gcc make

## memcached インストール
cd /usr/local/src
wget http://sourceforge.net/projects/repcached/files/repcached/2.2.1-1.2.8/memcached-1.2.8-repcached-2.2.1.tar.gz
tar zxvf memcached-1.2.8-repcached-2.2.1.tar.gz
cd memcached-1.2.8-repcached-2.2.1
./configure --build=x86_64-unknown-linux-gnu --enable-replication --enable-64bit 
make
make install

インストールされていることを確認する

memcached -h

ヘルプが表示されればOK

memcached 1.2.8
repcached 2.2.1
-p <num>      TCP port number to listen on (default: 11211)
-U <num>      UDP port number to listen on (default: 11211, 0 is off)
-s <file>     unix socket path to listen on (disables network support)
-a <mask>     access mask for unix socket, in octal (default 0700)```
....
....

2. 起動スクリプトを作る

以下のファイル名で起動スクリプトを作成する

vi /etc/rc.d/init.d/repcashed

起動スクリプトの中身はこちら

#! /bin/sh
#
# chkconfig: - 55 45
# description:  The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/repcached
# pidfile: /var/run/memcached/memcached.pid

# Standard LSB functions
#. /lib/lsb/init-functions

# Source function library.
. /etc/init.d/functions

EXEC=/usr/local/bin/memcached
REPHOST=localhost

PORT=11211
USER=memcached
MAXCONN=1024
CACHESIZE=64
OPTIONS=""

if [ -f /etc/sysconfig/repcached ];then
        . /etc/sysconfig/repcached
fi

# Check that networking is up.
. /etc/sysconfig/network

if [ "$NETWORKING" = "no" ]
then
        exit 0
fi

RETVAL=0
prog="repcached(memcached)"
PIDFILE=/var/run/memcached/repcached.pid
LOCKFILE=/var/lock/subsys/repcached

start () {
        echo -n $"Starting $prog: "

        daemon --pidfile $PIDFILE $EXEC -d -x $REPHOST -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P $PIDFILE $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch $LOCKFILE
}
stop () {
        echo -n $"Stopping $prog: "
        killproc -p $PIDFILE $EXEC
        RETVAL=$?
        echo
        if [ $RETVAL -eq 0 ] ; then
                rm -f $LOCKFILE $PIDFILE
        fi
}

restart () {
        stop
        start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status -p $PIDFILE $prog
        RETVAL=$?
        ;;
  restart|reload|force-reload)
        restart
        ;;
  condrestart|try-restart)
        [ -f $LOCKFILE ] && restart || :
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|try-restart}"
        RETVAL=2
        ;;
esac

exit $RETVAL

3. サービスに登録する

chmod +x /etc/rc.d/init.d/repcashed
chkconfig --add repcached
chkconfig repcached on

確認

chkconfig --list | grep repcashed

4. config ファイル を編集

vi /etc/sysconfig/repcached

Configファイル中身はこちら

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="使用するキャッシュのMaxSize"
OPTIONS=""
REPHOST="レプリケーション先ホストのIP Address"

5. 起動する

スタートスクリプトで起動します。

/etc/init.d/repcashed start

telnet で接続してみて確認

telnet localhost:11211  <- telnet で接続してみる

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

stats                    <- status を取得するコマンドを投げてみる

STAT pid 1432
STAT uptime 12656
STAT time 1453956042
STAT version 1.2.8
STAT pointer_size 64
...
...

quit                     <- 切断

以上となります。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6