Linux 系統安裝配置 Redis 集羣

Linux 系統安裝配置 Redis 集羣

https://help.finereport.com/doc-view-2870.html

  

0. 前言

基礎方案中已經提供了 Linux 系統安裝配置單機 Redis 的方案,此方案部署和運維較爲簡單,且能實現集羣的基礎可用。爲了達到 web 集羣極致高可用的目標,本文將提供 Redis 集羣的部署和配置方案。本文將以兩臺服務器爲例,介紹部署一個包含3個主節點、3個從節點的 Redis 集羣的方法,需要部署更多節點的 Redis 集羣可以基於此方案類推。

學習視頻:【linux系統安裝配置redis集羣】

redis有三種集羣方式:主從複製,哨兵模式和Redis-Cluster集羣,推薦使用Redis-Cluster集羣(即主從模式),暫時不支持主從複製,哨兵模式。

1. Redis 集羣原理

1)Redis 集羣結構是:N個平權主節點(master),每個主節點對應M個從節點(slave)。

2)Redis 集羣投票機制:服務器之間通過互相的 ping-pong 判斷是否節點可以連接上。如果有一半以上的節點去 ping 一個節點的時候沒有迴應,集羣就認爲這個節點宕機了。此時該主節點對應的從節點上升爲主節點。當沒有從節點可替補時,集羣宕機。

因爲投票機制,N須爲奇數。必須要3個或以上的主節點,否則在創建集羣時會失敗,並且當存活的節點數小於總節點數的一半時,整個集羣就無法提供服務了。

部署redis集羣至少需要3臺服務器,參考 環境準備,準備3臺 Linux 服務器,每臺服務器上部署2個節點,3臺服務器運行6個 Redis 實例,組成一個經典的“三主三從”的 Redis 集羣。

  端口
服務器1 7001、7002
服務器2 7003、7004
服務器3

7005、7006

附:Redis 集羣規劃部署注意事項

3. 服務器上創建兩個 Redis 節點

3.1 編譯環境

安裝 Redis 時需對源碼包編譯,此步驟依賴 gcc 編譯器,如果沒有 gcc 環境,則需要自行安裝,聯網安裝命令 yum install gcc gcc-c++

gcc -v #檢查是否有 gcc 編譯器

3.2 下載源碼包

要求使用5.0.0以上版本 redis,部署和啓動redis集羣時無須依賴 ruby。

1)下載:redis-5.0.4.tar.gz: redis-5.0.4.tar.gz

2)官網下載:http://download.redis.io/releases/

3.3  安裝 Redis

mkdir /usr/redis #創建Redis目錄
cd /usr/redis #進入目錄
#將redis-5.0.4.tar.gz傳輸到該目錄下#
tar zxvf redis-5.0.4.tar.gz #解壓安裝包
cd /usr/redis/redis-5.0.4 #進入解壓目錄
make && make install #安裝命令

安裝成功後可以看到:

企業微信截圖_15668925744219.png

3.4 創建節點

mkdir /usr/redis/redis-cluster #創建集羣目錄redis-cluster
cd /usr/redis/redis-cluster #進入redis-cluster目錄
mkdir 7001 7002 #創建兩個redis節點的目錄

3.5 修改配置

下載配置文件:redis.conf:redis.conf,手動放入放置到 7001 和 7002 兩個文件夾。

本文提供的配置文件相比默認的 redis.conf 已經修改內容如下:

#bind 127.0.0.1 # 取消僅限本地訪問的限制
daemonize yes # 設置redis默認後臺運行
protected-mode no # 關閉保護模式
maxmemory 2147483648 # 最大內存2G
maxmemory-policy volatile-lru # 過期清理策略
pidfile /var/run/redis_7001.pid # pidfile文件對應7001
port 7001 # 端口7001 
requirepass admin123456 # redis登錄密碼,默認admin123456
masterauth admin123456 # redis認證密碼,默認admin123456
cluster-enabled yes # 開啓集羣 
cluster-config-file nodes-7001.conf # 集羣的配置,配置文件首次啓動自動生成7001

7001 文件夾的 redis.conf 無須再修改,7002 文件夾的 redis.conf 需將配置裏的 7001 替換爲 7002,操作如下:

cd /usr/redis/redis-cluster/7002/ #進入7002目錄
vi redis.conf #編輯redis.conf文件
:%s/7001/7002/g  # 將7002的conf文件中所有7001替換爲7002,一共三處
:wq # 保存配置

3.6 啓動節點

cd /usr/redis/redis-5.0.4/src/ #進入啓動目錄
./redis-server /usr/redis/redis-cluster/7001/redis.conf  # 指定7001的配置文件,啓動該節點
./redis-server /usr/redis/redis-cluster/7002/redis.conf  # 指定7002的配置文件,啓動該節點

企業微信截圖_15668933937373.png

在啓動7001 和 7002 節點後,redis 節點之間會用到17001 和 17002 端口供集羣選舉通信使用(CLUSTER MEET),即使用端口的大小加上 10000(端口是XXXX,那麼通信端口是1XXXX),若節點間服務器有防火牆,需要對這些端口進行開放。

4. 創建其他四個節點

創建更多節點,重複操作 3.1-3.6 的步驟。創建 7003、7004 和 7005、7006 節點並啓動。

5. 創建Redis集羣

節點創建完畢後,各個節點實際上是獨立的,並沒有組成一個集羣,還需要下面的操作。

cd /usr/redis/redis-5.0.4/src/ #進入任一節點的啓動目錄
./redis-cli --cluster create 192.168.61.250:7001 192.168.61.250:7002 192.168.61.250:7003 192.168.61.250:7004 192.168.61.250:7005 192.168.61.250:7006 --cluster-replicas 1 -a admin123456 #創建集羣的命令,命令最後的admin123456是設置的認證密碼,-replicas 1的
意思是每臺redis服務器有一個備份機,執行完此命令後,該腳本會自動爲這6個redis實例分配主從和槽。

當程序提示: Can I set the above configuration? (type 'yes' to accept) 時,鍵入 yes 回車:

企業微信截圖_15668937879265.png

至此集羣搭建完成!

企業微信截圖_15668938623491.png

6. 運維知識

cd /usr/redis/redis-5.0.4/src/ #進入啓動目錄
./redis-server /usr/redis/redis-cluster/7001/redis.conf  #指定7001的配置文件,啓動該節點,其他節點啓動方式同理
redis-cli -h ip  -c -p 端口 -a 密碼 #客戶端遠程連接某個節點,要輸入對應的ip、端口、密碼
192.168.1.124:7001> cluster nodes  #進入任意一個節點,查詢集羣主從分佈及健康狀態

更多運維操作,詳情見:Linux 系統 Redis 運維手冊

附:Redis 集羣搭建官方指導—https://redis.io/topics/cluster-tutorial

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章