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

來源:互聯網
上載者:User

使用下面的命令進行更新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下面根本沒有產生redis的pid檔案:

 


這就奇怪了,難道redis沒有建立目錄的許可權。那我們手工建立一個/var/run/redis目錄,然後給redis使用者賦一個許可權:

 


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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.