為了提高**的響應速度,總是把熱點資料儲存在記憶體中而不是直接從後端資料庫中獲取。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...