Redis三主三从集群搭建
一、引子
主從復制以及哨兵,他們可以提高讀的并發(fā),但是單個master容量有限,數(shù)據(jù)達到一定程度會有瓶頸,這個時候可以通過水平擴展為多master-slave集群(看原理圖)。
所以一起來學習redis-cluster:他可以支撐多個master-slave,支持海量數(shù)據(jù),實現(xiàn)高可用與高并發(fā)。哨兵模式其實也是一種集群,他能夠提高讀請求的并發(fā),但是容錯方面可能會有一些問題,比如master同步數(shù)據(jù)給slave的時候,這其實是異步復制吧,這個時候 master宕機了,那么slave上的數(shù)據(jù)就沒有master新,數(shù)據(jù)同步需要時間的,1-2秒的數(shù)據(jù)會丟失。master恢復并轉換成slave后,新數(shù)據(jù)則丟失。
Redis-Cluster集群特點
- 1.每個節(jié)點知道彼此之間的關系,也會知道自己的角色,當然他們也會知道自己存在與一個集群環(huán)境中,他們彼此之間可以交互和通信,比如說ping - pong。那么這些關系都會保存到某個配置文件中,每個節(jié)點都有,這個我們在搭建的時候會做配置的。
- 2.客戶端要和集群建立連接的話,只需要和其中一個建立關系就行。
- 3.某個節(jié)點掛了,也是通過超過半數(shù)的節(jié)點來進行的檢測,客觀下線后主從切換,和我們之前在哨兵模式中提到的是一個道理。
- 4. Redis中存在很多的插槽,又可以稱之為槽節(jié)點,用于存儲數(shù)據(jù)。
集群容錯
構建Redis集群,需要至少3個節(jié)點作為master,以此組成一個高可用的集群,此外每個master都需要配備一個slave,所以整個集群需要6個節(jié)點,這也是最經(jīng)典redis集群模式,也可以稱之為三主三從,容錯性更佳。所以在搭建的時候需要有6臺虛擬機。請各自準備6臺虛擬機,并安裝好redis(可以通過克隆去構建,使用單實例的Redis去克隆即可)? ? ? ??
- 集群也可以在單服務器構建,稱之為偽集群,但是生產(chǎn)環(huán)境肯定是真的,所以建議用6臺。
- 克隆后務必關閉Redis
二、原理圖
(redis安裝redis在CentOs服務器上的安裝和設置開機自啟動_p&f°的博客-CSDN博客)
三、具體實現(xiàn)
Ⅰ 修改redis.conf主配置文件(先說192.168.1.201配置,其他5臺一樣)
1、進入redis.conf主配值文件夾,修改rendis.conf配置
cd /usr/local/redisvim redis.conf找到如下位置
2、修改如下提到的配置
#開啟集群模式 cluster-enabled yes#每一個節(jié)點需要有一個配置文件,需要6份。 #每個節(jié)點處于集群的角色都需要告知其他所有節(jié)點,彼此知道 #這個文件用于存儲集群信息,不需要人為干預 cluster-config-file nodes-6379.conf#超時時間,超時則認為master宕機,隨后主備切換 cluster-node-timeout 5000#開啟AOF appendonly yes3、清除redis持久化生成的rdb等文件。這一步不是必須的,第一次安裝一般沒有這些文件,如果有刪除即可。(如果后期啟動過程出錯,極大概況忘記刪除了,把rdb等文件刪除清空就行)
(如果找不到位置,請查看Redis的持久化機制(RDB和AOF)(1)_p&f°的博客-CSDN博客
中的RDB的配置第一條 1. 保存位置。對照自己的持久化策略即可)
?4、重啟redis,查看是否重啟成功
?5、重復以上4步操作,修改剩余5臺CentOs
Ⅱ 創(chuàng)建集群
1、創(chuàng)建命令(隨便在那個CentOs中執(zhí)行創(chuàng)建)
######注意1:如果你使用的是redis3.x版本,需要使用redis-trib.rb來構建集群 ######注意2:最新版使用C語言來構建了,這個要注意。以下為新版的redis構建方式######創(chuàng)建集群,主節(jié)點和從節(jié)點比例為1,1-3為主,4-6為從,1和4,2和5,3和6分別對應為主從關系,這也是最經(jīng)典用的最多的集群redis-cli --cluster create ip1:port1 ip2:port2 ip3:port3 ip4:port4 ip5:port5 ip6:port6 --cluster-replicas 1?輸入完創(chuàng)建命令后,會顯示集群配置信息,如下。輸入yes同意即可創(chuàng)建成功
?2、檢查集群信息。創(chuàng)建成功后可以使用如下命令
redis-cli --cluster check 192.168.1.201:6379?擴展1:
slots:槽,用于裝數(shù)據(jù),主節(jié)點有,從節(jié)點沒有
1、總共有16384個槽,會平均分配給master節(jié)點
2、槽slot怎么存儲
?存儲舉例說明
主節(jié)點把數(shù)據(jù)存入slot槽中,從節(jié)點不會存儲數(shù)據(jù),當master掛掉時,會把對應的數(shù)據(jù)存入到對應的slave中。
比如:2棟起火了(master掛了),101用戶就會到5棟(slave替代master,成為master)101。
?擴展2:集群基本命令
擴展三:springboot集成redis集群?
在springboot集群中配置即可
spring:redis:#Redis 集群模式password: imooccluster:nodes: 192.168.1.201:6379,192.168.1.202:6379,192.168.1.203:6379,192.168.1.204:6379,192.168.1.205:6379,192.168.1.206:6379?
總結
以上是生活随笔為你收集整理的Redis三主三从集群搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql 三个表联合查询(三表左联查询)
- 下一篇: google翻译