今天早晨用RedisDesktopManager連線Redis失敗,發現連線不上,歷經了千辛萬苦,終於找到了問題所在。
注:我的redis的機器的地址是:192.168.56.104
如何檢視安裝Redis機器的地址呢?
因為Linux會有很多個網路卡,需要找到和自己虛擬機器器連線的網路卡的ip地址。最簡單的方式就是在Linux中輸入命令
ip addr
然後把所有的ip地址都ping一遍。
命令:
# ip即為你安裝Redis的機器的ip地址
ping #{ip}
如何檢視我有沒有修改過埠呢?
找到Redis機器中Redis的組態檔:redis,conf:強烈建議複製出來一個組態檔:redis.conf,因為修改錯誤,可能會會出現意想不到的麻煩.
內容
# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
翻譯
接受指定埠上的連線,預設為6379 (IANA #815344)。
# If port 0 is specified Redis will not listen on a TCP socket.
所以port 後面的數位就是埠號。
然後執行下面的命令,檢視埠號的方式請看上面。
firewall-cmd --query-port=6379/tcp
[root@linux~]#firewall-cmd --add-port=6379/tcp
firewall-cmd --query-port=6379/tcp
我們進行完了機器的設定,接下來,我們要進行Redis組態檔的設定。
大概翻譯:
預設情況下,如果沒有指定「繫結」設定指令,Redis監聽伺服器上所有可用網路介面的連線。可以使用「bind」設定指令監聽一個或多個選擇的介面,後面跟著一個或多個IP地址。
需要注意的是:
~
警告~如果計算機執行Redis是直接暴露在,在internet上,繫結到所有介面是危險的,並將暴露
給網際網路上的每個人。舉個例子。預設情況下,我們取消註釋,遵循bind指令,這將迫使Redis只監聽,IPv4環回介面地址(這意味著Redis將能夠只接受來自執行到同一計算機的使用者端的連線正在執行)。
所以說,如果大家是學習使用,那麼可以將這個註釋掉。警告!!如果將Redis對映到Internet是非常危險的。就像上面組態檔的翻譯這樣說。
翻譯:
在網際網路上開放的Redis範例被存取和利用。
當保護模式是開啟,如果:
1)伺服器沒有使用「bind」指令顯式地繫結到一組地址。
2)沒有設定密碼。伺服器只接受來自使用者端的連線,這些連線來自IPv4和IPv6環回地址127.0.0.1和::1,以及Unix域通訊端。
預設保護模式是啟用的。你應該禁用它,只有當你確定你想要客戶從其他主機連線到Redis,即使沒有身份驗證設定,也沒有一個特定的介面設定明確列出使用「繫結」指令。
解決方案:
將yes改成no,因為我已經修改過了,所以是yes
ps -aux | grep redis
sudo kill -9 2199
然後重新啟動:
[root@localhost /]# /usr/local/bin/redis-server /myredis/redis.conf
[root@localhost /]# /usr/local/bin/redis-cli -p 6379
注意 : /myredis/redis.conf是我組態檔的位置。
這個問題困擾了我一上午,都設定好了,都不行,最好請來了運維大佬給我解決了,我的問題是設定好以後,redis並沒有真正意義上的重新啟動。