如何再CentOS 7安裝Redis

目的

Redis作為一個開源資料庫,處理速度較快,因為所有數據都可保存至內存,這是開發實時數據處理類應用程式的最佳解決方案之一。

本教程將詳細介紹如何在Linux CentOS 7發伺服器上安裝和配置Redis資料庫,以及提高資料庫安全性和創建副本等。

首先,您需要通過SSH連接連接到伺服器。若是本地伺服器,請記得打開伺服器的終端。

安裝Redis

為安裝Redis,請先使用yum的方式下載:

sudo yum install redis

當下載完成後,請打開下載包,並啟動安裝。

sudo systemctl start redis
sudo systemctl enable redis

檢查

為驗證Redis的安裝正確,需使用Redis -cli命令行客戶端,在資料庫中設置一個測試值

$ redis-cli set test 123456

OK
如果操作正確,您可以看到伺服器回復「OK」。請記得檢查該值與測試值是否一致。

$ redis-cli get test
"123456"

Redis將返回剛剛保存的值(在此案例中,字符串為「123456」)。然後記得刪除此次測試。

$ redis-cli del test
(integer) 1

提高安全性

Redis初始配置下,允許只從本地地址連接到資料庫,而不需要任何密碼或認證形式。所有設置都是通過/etc/ Redis .conf中的配置文件讀取的,並且可以通過使用任何客戶端軟體的CONFIG SET / CONFIG GET命令,在任何時間和實時覆蓋。但是,客戶端修改的設置
不會保存在配置文件中,在下次啟動Redis時即會丟失。

為提高資料庫安全性,可以通過修改或插入配置文件中的requirepass條目來設置身份驗證密碼:

requirepass 5eMX822gZ0lCGdd81rSIrTvPCUfeEFYAUIgyJNs4

密碼保存在明文配置文件中,必須足夠長的時間來抵禦暴力攻擊,因為Redis能夠每秒處理多個連接。最重要的設置中,還需要綁定,設置地址上的Redis必須啟用連接接收:

bind 127.0.0.1

默認啟用本地地址127.0.0.1。如果需要對外公開Redis伺服器,可以添加額外的地址,例如:

bind 127.0.0.1 51.125.63.201

另一個常見的錯誤是保留用於偵聽傳入連接的默認埠設置。這意味允許任何埠掃描軟體定位Redis伺服器:

port 2589

通過將埠從6379改為2589,Redis則可以被隱藏,並為您的安裝增加了額外的安全級別。

完成對配置文件的所有修改後,請重啟:

$ sudo systemctl restart redis

請檢查剛剛應用的參數,使用redis-cli獲取當前綁定參數,使用新配置的埠和上面設置的密碼:

$ redis-cli -a 5eMX822gZ0lCGdd81rSIrTvPCUfeEFYAUIgyJNs4 -p 2589 config get bind

伺服器應該響應所需的參數:

1) "bind"
 2) "127.0.0.1"

創建複製品安裝

Redis也能夠允許在幾個步驟中配置一個副本伺服器。與主版本相比,這個副本伺服器是實時更新的。通過此配置,可以提供主伺服器故障時讀取數據的備份服務。
連接到備用伺服器後,請使用yum完成Redis的安裝:

$ sudo yum install redis

同樣的安全程序在前面的段落可以應用到保護這個Redis實例。在下面的示例中,將使用默認參數。為了與主伺服器同步,副本必須與主機正確通信。確保公共IP位址出現在主機器的配置中(bind參數),並通過從機器啟動命令來檢查連接是否正常:

$ redis-cli -h [MASTER_IP_ADDRESS] -a [PASSWORD_MASTER] ping

PONG
如果對ping命令有響應,則是說明機能夠正常通信。
然後,在配置文件/etc/redis.conf中修改以下參數,可繼續進行slave的實際配置:

# If it is there, specify the master connection password too.
masterauth password
# The slaveof directory specifies the master connection parameters (ADDRESS_IP PORT)
slaveof 195.231.4.71 6379

完成後,保存配置並啟動Redis從伺服器,請輸入:

$ sudo systemctl start redis
$ sudo systemctl enable redis

這時您可以檢查同步是否被正確激活,使用tail來查看服務日誌文件的最後幾行:

$ tail /var/log/redis/redis.log

6345:S 02 Jul 10:53:46.695 * MASTER <-> SLAVE sync: receiving 77 bytes from master

6345:S 02 Jul 10:53:46.695 * MASTER <-> SLAVE sync: Flushing old data

6345:S 02 Jul 10:53:46.695 * MASTER <-> SLAVE sync: Loading DB in memory

6345:S 02 Jul 10:53:46.695 * MASTER <-> SLAVE sync: Finished with success

最後幾行即是確認正常工作。
然後,執行一個測試,在資料庫中設置一個值,並檢查主伺服器是否正確讀取了該值。
從主伺服器設置測試密鑰:

$ redis-cli -a password set test hello
OK

讀取從屬伺服器的相同值。

$ redis-cli get test
"hello"

正如你所看到的,主站和從站都存儲了相同的值。這意味著複製工作是正確的!

您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
Telegram Skype