CentOS 6.9 redis安裝與基本配置(上)

使用下面的命令進行更新yum源並安裝redis服務:

rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

yuminstall -y redis

serviceredis start

chkconfigredis on

 

安裝好之後,我們發現一個比較奇怪的問題(不確定是否與Redis版本有關,CentOS 7.4上沒遇到類似問題):

我們查看redis服務狀態:

 


但是我們查看redis服務端口偵聽情況:

 


可以看到redis服務是正常偵聽的,而且本地使用redis-cli也是可以連接的:

 


瞭解了一下,發現serviceredis status實際上是去調用/etc/init.d/redis這個腳本文件的status方法的,我們看一下/etc/init.d/redis這個文件內容(無關部分我們用……省略掉了):

#!/bin/sh

……

name="redis-server"

exec="/usr/bin/$name"

shut="/usr/libexec/redis-shutdown"

pidfile="/var/run/redis_6379.pid"

REDIS_CONFIG="/etc/redis.conf"

……

start() {

    [ -f $REDIS_CONFIG ] || exit 6

    [ -x $exec ] || exit 5

    echo -n $"Starting $name: "

    daemon --user ${REDIS_USER-redis} "$exec $REDIS_CONFIG --daemonize yes --pidfile $pidfile"

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}

……

rh_status() {

    status -p $pidfile $name

}

 

rh_status_q() {

    rh_status >/dev/null 2>&1

}

 

 

case "$1" in

    start)

        rh_status_q && exit 0

        $1

        ;;

    stop)

        rh_status_q || exit 0

        $1

        ;;

    restart)

        $1

        ;;

    reload)

        rh_status_q || exit 7

        $1

        ;;

    force-reload)

        force_reload

        ;;

    status)

        rh_status

        ;;

    condrestart|try-restart)

        rh_status_q || exit 0

        restart

        ;;

    *)

        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}"

        exit 2

esac

exit $?

我們看到,在調用redisstatus參數的時候,會調用rh_status這個方法,這個方法實際上是去檢查pid文件。我們再看一下,start方法中,會調用/usr/bin/redis-server這個執行文件,對應生成一個pid文件,看到有一個daemonize參數,去redis配置文件查看這個參數以及pid文件的路徑:




可以看到默認redis是以daemon的方式運行的,但是 配置文件中pid文件的路徑和/etc/init.d/redis腳本文件中的路徑不一致,所以我們嘗試修改一下腳本中pid文件路徑:pidfile="/var/run/redis.pid"

再次嘗試重啓服務發現仍然不行,查看/var/run下面根本沒有生成redispid文件:

 


這就奇怪了,難道redis沒有創建目錄的權限?那我們手工創建一個/var/run/redis目錄,然後給redis用戶賦一個權限:

 


再次嘗試一下重啓服務,這下正常了:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章