CentOS 8 安裝 Redis 並設置允許遠程連接


環境確認

gcc環境

由於Redis是用C語言開發的,所有要安裝C語言的編譯環境(gcc),首先確認系統中是否有gcc環境

gcc -v

如下提示代表沒有安裝gcc環境,它會提示你是否安裝,輸入y回車,會自動安裝

也可以輸入N,手動安裝

yum install  -y  gcc

安裝make工具,編譯工具

yum install  -y  make

tcl 版本確認

因為后面make test 的時候要求 tcl最低8.5 所以先更新tcl的版本

yum install tcl

下載安裝

下載reids

從官方下載redis到指定目錄(先將安裝包下載到臨時目錄)

wget -P /tmp http://download.redis.io/releases/redis-5.0.5.tar.gz

此時進入 tmp 文件夾下,會發現 有redis的壓縮文件

進入 tmp 文件夾之后解壓

tar -zxvf redis-5.0.5.tar.gz

進入解壓出來的 redis 文件夾 

cd redis-5.0.5

編譯

make

之后會提示你用 make test 測試一下,執行之后最下面出現 [\o/ All tests passed without errors!] 代表編譯成功

make test

安裝

指定目錄安裝,我一般安裝在opt下, opt 相當於windows 的program files文件夾,一般是安裝第三方軟件的地方

make install PREFIX=/opt/redis

啟動

到redis安裝目錄下可以看到有redis-server,執行這個命令就可以在前台啟動redis了

./redis-server 

顯然前台啟動這種方式不是我們想要的,執行此命令就是測試一下redis是否啟動正常。

此時可以使用 ctrl+c 組合鍵停止redis了,下面我們來設置后台啟動。

redis.conf 這個是redis自帶的配置文件,

這給文件存放在剛才解壓的 /tmp/redis-5.0.5 文件夾內,將它復制到安裝目錄下

cp /tmp/redis-5.0.5/redis.conf /opt/redis/bin/

 然后用vi 修改 redis.conf 文件,把 daemonize no 改為 daemonize yes

(小技巧,命令行下 /str 可以搜索內容, 然后按 n 搜搜下一項)

vi redis.conf 

后台啟動redis

./redis-server redis.conf    

停止redis

./redis-cli shutdown

開啟遠程連接,設置密碼

修改配置文件

接下來要修改 2-3 個節點,視情況而定。同樣也是 redis.conf文件

節點1:
              # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
              翻譯:如果你確定你想要你的實例去監聽所有連接
              # JUST COMMENT THE FOLLOWING LINE.
              翻譯:僅僅只需要將下面一行注釋即可
              # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              bind 127.0.0.1
              所以我們注釋掉這一行就好了
              # bind 127.0.0.1

              注意:這樣做能使所有的host都能去訪問redis,在沒有通過配置文件設置密碼的情況下這種操作是十分危險的。 所以我的建議是:要么設置密碼,要么指定能夠訪問的ip.指定能夠訪問的主機,只需增加一行 bind 主機ip 就OK了。

節點2:
              設置密碼: 

    #requirepass foobared

    節點注釋去掉,再將foobared換成你的密碼。

   requirepass password

    注意:低版本的Redis只需要修改上面一個節點就好,但是高版本的Redis新增了protected-mode節點,如果你忽略我的建 議,既沒有設置密碼,也沒有bind指定的ip。

    換句話說:你在不設置密碼的情況下,希望所有ip都能連接到Redis。那么你就要進行修改節點3關閉掉保護模式,否則修改節點1,節點2 就能實現遠程訪問了,沒必要再進行節點3的修改了。

節點3:

              # By default protected mode is enabled. You should disable it only if
              保護模式是默認開啟的,你應該關閉他僅僅在
              # you are sure you want clients from other hosts to connect to Redis
              你確信你想要其他主機的客戶端去連接Redis
              # even if no authentication is configured, nor a specific set of interfaces
              即使沒有authentication(相當於密碼)被設置,也沒有一組特定的連接
              # are explicitly listed using the "bind" directive.
              被bind指令明確指出
              protected-mode yes

              將yes改為no就行了

           從官方說明我們可以知道,當保護模式開啟時,如果沒有設置密碼,並且設置允許任意ip可以訪問時,你是連接不上 Redis 的!當然我希望你僅僅做第一步就夠了,盡量不要關閉掉保護模式。

開啟防火牆,開放redis端口(6379)

查看防火牆狀態

systemctl status firewalld

打開防火牆( 關閉防火牆 systemctl stop firewalld )

systemctl start firewalld

查看防火牆某個端口是否開放

firewall-cmd --query-port=6379/tcp

開放防火牆端口 6379

firewall-cmd --zone=public --add-port=6379/tcp --permanent

重新啟動防火牆

firewall-cmd --reload

啟動redis

./redis-server redis.conf

啟動/停止腳本

修改PID文件保存路徑

修改redis默認保存pid文件的位置。

linux啟動進程的時候會生成進程id並保存成 .pid文件保存在 /var/run 下,通過pid可查看當前的進程號;

同樣編輯 redis.conf文件找到 pidfile /var/run/redis_6379.pid,一般把路徑保存到redis安裝目錄下,方便查看,

改成 pidfile /opt/redis/bin/redis_6379.pid

創建停止redis腳本

cat>> redis-stop.sh

然后輸入下列內容,輸入完之后按  CTRL+D 保存

echo "stopping redis server ... "

kill -9 `cat /opt/redis/bin/redis_6379.pid`

創建啟動redis腳本

cat>> redis-start.sh

然后輸入下列內容,輸入完之后按  CTRL+D 保存

./redis-stop.sh

echo "starting redis servier ..."

/opt/redis/bin/redis-server /opt/redis/bin/redis.conf

/opt/redis/bin/redis-cli -p 端口號 -a 密碼

 修改文件權限

chmod 777 redis-start.sh
chmod 777 redis-stop.sh

運行腳本測試

啟動

./redis-start.sh

 停止

./redis-stop.sh


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM