Redis6 0 5集群搭建流程(詳細)

2021-10-09 07:59:33 字數 3419 閱讀 3314

通常,為了提高**響應速度,總是把熱點資料儲存在記憶體中而不是直接從後端資料庫中讀取。

redis是乙個很好的cache工具。大型**應用,熱點資料量往往巨大,幾十g上百g是很正常的事兒。

由於記憶體大小的限制,使用一台 redis 例項顯然無法滿足需求,這時就需要使用多台 redis作為快取資料庫。但是如何保證資料儲存的一致性呢,這時就需要搭建redis集群.採用合理的機制,保證使用者的正常的訪問需求.

採用redis集群,可以保證資料分散儲存,同時保證資料儲存的一致性.並且在內部實現高可用的機制.實現了服務故障的自動遷移.

主從劃分:

3臺主機 3臺從機共6臺 埠劃分7000-7005

1.準備集群資料夾

mkdir cluster
2.在cluster資料夾中分別建立7000-7005資料夾說明:將redis根目錄中的redis.conf檔案複製到cluster/7000/ 並以原名儲存

cp redis.conf cluster/

7000

/

1.注釋本地繫結ip位址

2.關閉保護模式

3.修改埠號

4.啟動後台啟動

5.修改pid檔案

6.修改持久化檔案路徑

7.設定記憶體優化策略

8.關閉aof模式

9.開啟集群配置

10.開啟集群配置檔案

11.修改集群超時時間

說明:將7000資料夾下的redis.conf檔案分別複製到7001-7005中

[root@localhost cluster]# cp 7000

/redis.conf 7001

/[root@localhost cluster]# cp 7000

/redis.conf 7002

/[root@localhost cluster]# cp 7000

/redis.conf 7003

/[root@localhost cluster]# cp 7000

/redis.conf 7004

/[root@localhost cluster]# cp 7000

/redis.conf 7005

/

說明:分別將7001-7005檔案中的7000改為對應的埠號的名稱,

1.建立啟動指令碼 vim start.sh

#!

/bin/sh

redis-server 7000

/redis-

7000.conf &

redis-server 7001

/redis-

7001.conf &

redis-server 7002

/redis-

7002.conf &

redis-server 7003

/redis-

7003.conf &

redis-server 7004

/redis-

7004.conf &

redis-server 7005

/redis-

7005.conf &

2.編輯關閉的指令碼 vim shutdown.sh

#!

/bin/sh

redis-cli -p 7000 shutdown &

redis-cli -p 7001 shutdown &

redis-cli -p 7002 shutdown &

redis-cli -p 7003 shutdown &

redis-cli -p 7004 shutdown &

redis-cli -p 7005 shutdown &

3.啟動redis節點

sh start.sh

4.檢查redis節點啟動是否正常

1.2.7建立redis集群

#5.0版本執行 使用c語言內部管理集群

redis-cli --cluster create --cluster-replicas 1 192.168.35.130:7000 192.168.35.130:7001 192.168.35.130:7002 192.168.35.130:7003 192.168.35.130:7004 192.168.35.130:7005

1.2.8redis集群高可用測試

1.關閉redis主機.檢查是否自動實現故障遷移.

2.再次啟動關閉的主機.檢查是否能夠實現自動的掛載.

一般情況下 能夠實現主從掛載

個別情況: 宕機後的節點重啟,可能掛載到其他主節點中(7001-7002) 正確的

1.3redis集群原理

1.3.1redis集群高可用推選原理

如圖-24所示

圖- 24

原理說明:

redis的所有節點都會儲存當前redis集群中的全部主從狀態資訊.並且每個節點都能夠相互通訊.當乙個節點發生宕機現象.則集群中的其他節點通過ping-pong檢測機制檢查redis節點是否宕機.當有半數以上的節點認為宕機.則認為主節點宕機.同時由redis剩餘的主節點進入選舉機制.投票選舉鏈結宕機的主節點的從機.實現故障遷移.

1.3.2redis集群宕機條件

特點:集群中如果主機宕機,那麼從機可以繼續提供服務,

當主機中沒有從機時,則向其它主機借用多餘的從機.繼續提供服務.如果主機宕機時沒有從機可用,則集群崩潰.

答案:9個redis節點,節點宕機5-7次時集群才崩潰.

如圖-25所示:

圖- 25

1.3.3redis hash槽儲存資料原理

說明: rediscluster採用此分割槽,所有的鍵根據雜湊函式(crc16[key]%16384)對映到0-16383槽內,共16384個槽位,每個節點維護部分槽及槽所對映的鍵值資料.根據主節點的個數,均衡劃分區間.

演算法:雜湊函式: hash()=crc16[key]%16384

如圖-26所示

圖- 26

當向redis集群中插入資料時,首先將key進行計算.之後將計算結果匹配到具體的某乙個槽的區間內,之後再將資料set到管理該槽的節點中.

如圖-27所示

圖- 27

Redis3 0 6集群搭建

建立乙個rediscluster之前,我們需要有一些以cluster模式執行的redis例項,這是因為cluster模式下redis例項將會開啟cluster的特徵和命令。現在我有2臺vbox搭建的centos6虛擬機器 centos1 192.168.56.101 和centos2 192.168...

Redis3 0 集群搭建

redis3.0 部僅提供了哨兵監控,熱切換,還提供了集群解決方案,接下來簡單的搭建redis3.0集群 1 新建三個redis server例項,我們可以將redis.conf分別copy到7001,7002,7003的資料夾中,並修改相應的配置 vi redis3.0 instance 7001...

REDIS 4 集群搭建

redis 4 集群搭建 wget tar xzf redis 4.0.10.tar.gz cd redis 4.0.10 make make install 2.安裝ruby及ruby執行使用的包 yum install y ruby rubygems 3.修改配置檔案 redis.conf 主要...