天天看點

06-Debian 安裝Redis (finall)

作者:前行者lw

安裝:

sudo apt-get update

sudo apt-get install redis-server

安裝完成後,Redis服務将會自動啟動,你可以通過以下指令校驗Redis服務是否正常運作:

sudo systemctl status redis-server

要将Redis配置為接受遠端連接配接,請使用文本編輯器打開Redis配置檔案:

sudo vim /etc/redis/redis.conf

定位到以bind 127.0.0.1 ::1開頭的一行,并且取消它的注釋:

# bind 0.0.0.0 ::1

bind 127.0.0.1 ::1

#daemonize yes

daemonize yes

sudo systemctl restart redis-server

sudo ufw allow 6379/tcp

重新啟動Redis服務以使更改生效:

sudo systemctl enable redis-server

sudo systemctl restart redis-server

使用ss或netstat驗證Redis正在偵聽端口上的所有接口6379:

sudo netstat -lntp|grep 6379

您應該看到類似以下的内容:

tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:*

tcp LISTEN 0 128 [::]:6379 [::]:*

配置完Redis後對它進行連接配接測試,可運作redis-cli進行本地連接配接 到redis,運作:

127.0.0.1:6379> INFO

127.0.0.1:6379> INFO Server

其他系統下啟動腳本

sudo vim /etc/init.d/redis

#!/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/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
        ;;
    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


           

sudo chmod +x /etc/init.d/redis

重載

sudo systemctl daemon-reload

啟動 停止

------------------------------------

Redis protected-mode 是3.2 之後加入的新特性,在Redis.conf的注釋中,我們可以了解到,他的具體作用和啟用條件

連結redis 時隻能通過本地localhost (127.0.0.1)這個來連結,而不能用網絡ip(192.168..)這個連結,如果用網絡ip 連結會報錯。

解決方案如下:

是說處于保護模式,隻能本地連結,我們需要修改配置檔案../redis.conf

1)打開配置檔案把下面對應的注釋掉

# bind 127.0.0.1

2)保護模式

protected-mode no

3)Redis預設不是以守護程序的方式運作,可以通過該配置項修改,使用yes啟用守護程序,設定為

yes

daemonize yes

4)最後關鍵的是:

沒反應應該是你啟動服務端的時候沒有帶上配置檔案。你可以./redis-server redis.conf

你配置好了,但要重新啟動redis,如果還是報一樣的錯誤,很可能是沒有啟動到配置檔案,是以需要真正的和配置檔案啟動需要:

在redis.conf檔案的目前目錄下:

$ redis-server redis.conf

如果還是所某個端口已在使用,那麼可能是有 背景程式在占用該端口,需要kill 掉該程式,重新帶上配置檔案。./redis-server redis.conf啟動。

将含有”redis”關鍵詞的程序殺死:

$ ps -ef | grep redis | awk ‘{print $2}’ | xargs kill -9

我的問題就是這個步驟解決的。

----------------------------【Redis】之密碼設定和驗證-----------------------------

# 設定密碼 127.0.0.1:6379> config set requirepass 123456 OK # 檢視結果 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "123456"

三、Redis 用戶端使用密碼驗證

如果 Redis Server 設定了密碼的話,使用 redis-cli 連接配接時有兩種密碼驗證方式:

1、連接配接時添加密碼參數

reids-cli -h hostname -p port -a password

2、或者不輸入密碼連接配接後使用 auth 指令來驗證

127.0.0.1:6379> keys * (error) NOAUTH Authentication required. 127.0.0.1:6379> auth 123456 OK

繼續閱讀