1. 程式人生 > >linux centOS7 設置 redis 開機啟動

linux centOS7 設置 redis 開機啟動

processor keyword 安裝 需要 redis 運行時 init shu ase

1.為了讓redis-server能在系統啟動時自動運行,需要將redis服務作為守護進程(daemon)來運行,我們回/usr/local/cluster/7000/目錄中找到一個redis.conf的文件,這個文件是redis服務運行時加載的配置,我們先觀察一下其中的內容

[root@192 7000]# vi redis.conf
輸入/daemonize

技術分享圖片

此文件內容非常長,但是大部分是註釋,我們重點關註其中的幾個設置daemonize和pidfile:
其中daemonize默認值是false,pidfile默認值是pidfile /var/run/redis_6379.pid
第一個表示是否daemon化,顯然我們要把它改成daemonize yes;
第二個表示當服務以守護進程方式運行時,redis默認會把pid寫入/var/run/redis_6379.pid文件,服務運行中該文件就存在,服務一旦停止該文件就自動刪除,因而可以用來判斷redis是否正在運行。
 保存後退出。
有了基本配置,redis還需要有一個管理啟動、關閉、重啟的一個腳本。redis源碼裏其實已經提供了一個初始化腳本,
位值在/usr/redis/utils/redis_init_script。
我們來看看這個腳本做了些什麽:

#!/bin/sh#
    REDISPORT=6379
    EXEC=/usr/local/bin/redis-server
    CLIEXEC=/usr/local/bin/redis-cli
    
    PIDFILE=/var/run/redis_${REDISPORT}.pid
    CONF="/etc/redis/${REDISPORT}.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
            ;;
        stop)
            if [ ! -f $PIDFILE ]
            then
                    echo "$PIDFILE does not exist, process is not running"
            else
                    PID=$(cat $PIDFILE)
                    echo "Stopping ..."
                    $CLIEXEC -p $REDISPORT shutdown
                    while [ -x /proc/${PID} ]
                    do
                        echo "Waiting for Redis to shutdown ..."
                        sleep 1
                    done
                    echo "Redis stopped"
            fi
            ;;
        *)
            echo "Please use start or stop as first argument"
            ;;
    esac
腳本中指定了端口、server路徑、cli路徑、pidfile路徑以及conf路徑,上述標黃的地方都需要正確配置,多說一句,如果在安裝時執行了make install,那麽這裏的腳本不需要做多大改動,因為make install把server和cli都拷到/usr/local/bin下面了。
我的腳本

技術分享圖片

***
2.設置啟動文件配置,進入7000的根目錄
cd /usr/local/cluster/7000
mkdir /etc/redis
cp redis.conf /etc/redis/7000.conf
***
3.將啟動腳本復制到/etc/init.d目錄下,本例將啟動腳本命名為redis (復制 /usr/local/cluster/7000/utils/redis_init_script文件)
cp redis_init_script /etc/init.d/redis
按照第一點說的修改redis文件、註意增加了chkconfig和description兩行 不然會提示 服務 redisd 不支持 chkconfig ?
***
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database

REDISPORT=7000
EXEC=/usr/local/cluster/7000/src/redis-server
CLIEXEC=/usr/local/cluster/7000/src/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.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
;;
stop)
編輯完保存就OK了
***
4.#設置為開機自啟動服務器
chkconfig redis on
#打開服務
service redis start
#關閉服務
service redis stop

***
5.重啟 reboot
執行ps指令,查看redis 7000端口已經啟動

linux centOS7 設置 redis 開機啟動