Redis集群搭建

2021-10-23 17:50:56 字數 2725 閱讀 3923

為了提高**的響應速度,總是把熱點資料儲存在記憶體中而不是直接從後端資料庫中獲取。redis是乙個很好的cache工具,熱點資料量往往很大,由於記憶體大小的限制,使用一台redis無法滿足需求,就需要使用多台redis作為快取資料庫。為了儲存資料的一致性,就需要搭建redis集群。

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

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

1.準備集群資料夾

mkdir cluster

2.在cluster資料夾中分別建立7000-7005資料夾

mkdir 7000 7001 7002 7003 7004 7005

3.複製配置檔案

將redis根目錄中的redis.conf檔案複製到cluster/7000/並以原名儲存

cp redis.conf cluster/7000/

4.編輯配置檔案

a.注釋本地繫結ip位址(69行)

b.關閉保護模式(88行)

protected-mode no

c.修改埠號(92行)

port 7000

d.啟動後台啟動(136行)

daemonize yes

e.修改pid檔案(158行)

pidfile /usr/local/src/redis/cluster/7000/redis.pid

f.修改持久化檔案路徑(263行)

dir /usr/local/src/redis/cluster/7000

g.設定記憶體優化策略(597行)

maxmemory-policy volatile-lru

h.關閉aof模式(699行)

i.開啟集群配置(838行)

cluster-enabled yes

j.開啟集群配置檔案(846行)

cluster-config-file nodes.conf

k.修改集群超時時間(852行)

cluster-node-timeout 15000

5.複製修改後的配置檔案

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

cp 7000/redis.conf 7001/

6.批量修改redis.conf檔案中的介面

7.編輯指令碼編輯啟動/關閉指令

啟動指令碼 vim start.sh

#!/bin/sh

redis-server 7000/redis.conf &

redis-server 7001/redis.conf & ...

編輯關閉指令碼 vim shutdown.sh

redis-cli -p 7000 shutdown &

redis-cli -p 7001 shutdown & ...

8.啟動redis節點

sh start.sh

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

ps -ef|grep redis

10.建立redis集群

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.7

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

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

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

個別情況下,宕機後的節點重啟,可能掛載到其他主節點中

info replication
redis的所有節點都會儲存當前redis集群中的全部主從狀態資訊,並且每個節點都能夠相互通訊

當乙個節點發生宕機現象,則集群中的其他節點通過ping-pong檢查機制檢查redis節點是否宕機

當有半數以上的節點認為宕機,則認為主節點宕機,同時由redis剩餘的主節點進入選舉機制,投票

選舉鏈結宕機的主節點的從機,實現故障遷移

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

當主機中沒有從機時,則向其他主機借用多餘的從機,如果主機宕機時沒有從機可用,則集群崩潰

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

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

雜湊函式:hash()=crc16[key]%16383

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

搭建redis集群

sudo apt get install git python python pip sudo pip install redis sudo pip install e git sudo pip install e git git clone ll binaries total 19m 173582...

redis集群搭建

redis集群搭建持久化保證了即使redis服務重啟不會丟失資料,因為redis服務重啟後會將硬碟上持久化的資料恢復到記憶體中,但是當redis伺服器的硬碟損壞了可能會導致資料丟失,如果通過redis的主從複製機制就可以避免這種單點故障。接下來開始redis集群的搭建。1 ruby環境2 建立集群 ...

redis集群搭建

redis集群部署文件 centos6系統 要讓集群正常工作至少需要3 個主節點,在這裡我們要建立6個 redis 節點,其中三個為主節點,三個為從節點,對應的 redis 節點的ip 和埠對應關係如下 127.0.0.1 7000 127.0.0.1 7001 127.0.0.1 7002 127...