CentOS 6.5でRedis起動構成記録


前編「CentOS 6.5下Redisインストールレコード」は、インストールされているだけで実行可能ですが、システムが再起動しても自動的に起動することはなく、使い勝手が悪いので、ここでCentOS 6.5下Redis起動構成レコードについてお話しします.
ダウンロード
参考:「CentOS 6.5でのRedisインストール記録」
Makeを実行しただけで、起動を構成するには、次の手順に従います.
sudo make install

Installの場合、redisのコマンドは/usr/local/binの下にコピーされます
プロファイルを/etcディレクトリにコピー
cp redis.conf /etc

ユーザーとログディレクトリの作成
Redisのユーザーを個別に作成し、dataとログフォルダを新規作成することをお勧めします.
sudo useradd redis
sudo mkdir -p /var/lib/redis
sudo mkdir -p /var/log/redis
sudo chown redis.redis /var/lib/redis
sudo chown redis.redis /var/log/redis

プロファイルの変更
vi /etc/redis.conf

バインドされたIPを修正し、本機以外の他のIPにアクセスできない問題を解決する(他のパソコンにアクセスする必要がある場合).
################################## NETWORK #####################################

# By default, if no "bind" configuration directive is specified, Redis listens
# for connections from all the network interfaces available on the server.
# It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only into
# the IPv4 lookback interface address (this means Redis will be able to
# accept connections only from clients running into the same computer it
# is running).
#
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.0
デフォルトは「bind 127.0.0.1::1」で、「bind 0.0.0.0」に変更されました.
起動モードをバックグラウンド起動に変更
################################# GENERAL #####################################

# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes
daemonize yes
データファイルの保存場所の変更
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis

注:ファイル名なしでディレクトリを指定します.
Initスクリプトの構成
vi /etc/init.d/redis
# chkconfig:   2345 90 10

# description:  Redis is a persistent key-value database

###########################
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
   
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli
   
PIDFILE=/var/run/redis.pid
CONF="/etc/redis.conf"
   
case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        if [ "$?"="0" ] 
        then
              echo "Redis is running..."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac
##############################

最初の2つの文に注意してください.
# chkconfig:   2345 90 10

# description:  Redis is a persistent key-value database
これは注釈ですが、それがなければ、サービスredis does not support chkconfigと間違えます.
実行権限の追加
chmod +x /etc/init.d/redis

起動サービスの設定
sudo chkconfig redis on  

起動、redis停止
service redis start  
service redis stop 
または:
/etc/init.d/redis start  
/etc/init.d/redis stop 

テストredis
# redis-cli
127.0.0.1:6379> set key 123
OK
127.0.0.1:6379> get key
"123"
127.0.0.1:6379> exit
Telnetを使用してテストすることもできます.
telnet  192.168.1.100 6379
接続後、同じコマンドを実行すればよい.
下一篇:CentOS 6.5下Redisインストールレコード