安裝:
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