<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Redis的複製功能是支援將多個資料庫之間進行資料同步,主資料庫可以進行讀寫操作。當主資料庫資料發生改變時會自動同步到從資料庫,從資料庫一般是唯讀的,會接收注資料庫同步過來的資料。
一個主資料庫可以有多個從資料庫,而一個從資料庫只能有一個主資料庫,預設情況下,每臺伺服器都是主節點,可以通過設定來設定Redis節點稱為從資料庫。
預設情況下,每個節點都是主節點,只需要設定從節點。可以通過複製Redis.conf組態檔,修改主要資訊,例如:埠號、pid名稱、log檔名稱、dump.rdb名稱等,可以修改設定,設定就永久有效,也可以通過命令形式做處理。
命令:info replication:檢視當前庫資訊
命令:slaveof ip port :在從伺服器上執行名,給定主伺服器的埠和IP
命令:Slave no one :可以讓從節點恢復為主機
啟動三個Redis服務,給定埠6380、6381、6382。給定6380為主節點
nohup redis-server --port 6380 >> /usr/local/redis/data/log/6380.log 2>&1 & nohup redis-server --port 6381 >> /usr/local/redis/data/log/6381.log 2>&1 & nohup redis-server --port 6382 >> /usr/local/redis/data/log/6382.log 2>&1 & [root@redis ~]# ps -ef |grep redis root 16421 16314 0 03:01 pts/1 00:00:00 redis-server *:6380 root 16427 16314 0 03:01 pts/1 00:00:00 redis-server *:6381 root 16431 16314 0 03:01 pts/1 00:00:00 redis-server *:6382
Gong-Dezhe-MBP:log gongdezhe$ redis-cli -p 6380 127.0.0.1:6380> Gong-Dezhe-MBP:~ gongdezhe$ redis-cli -p 6381 127.0.0.1:6381> slaveof 127.0.0.1 6380 OK Gong-Dezhe-MBP:~ gongdezhe$ redis-cli -p 6382 127.0.0.1:6382> slaveof 127.0.0.1 6380 OK
主從設定完成後,主節點資訊:
從節點資訊:
資料同步測試:
搭建好的主從複製方案可以達到資料同步目的,但是當主伺服器宕機後,需要手動將一個從伺服器切換為主伺服器,這個過程需要人工干預,同時切換會導致Redis的寫入功能不可用。需要一種能夠自動完成master故障發現並能夠將一個Slave切換為master,這個時候需要哨兵sentinel模式,哨兵模式可以自動切換主從節點。
sentinel是官方提供的高可用方案,其原理是哨兵通過傳送命令,等待Redis伺服器響應,從而監控執行的多個Redis範例。同時 sentinel是一個分散式系統,可以在一個架構中執行多個Sentinel程序。所以監控同一個Master的Sentinel會自動連線,組成一個分散式的Sentinel網路,互相通訊並交換彼此關於被監視伺服器資訊。
sentinel工作過程:
關於sentinel的三個定時任務:
然而一個哨兵程序對Redis伺服器進行監控,可能會出現問題,為此,我們可以使用多個哨兵進行監控,各個哨兵之間還會進行監控,這樣就形成了多哨兵模式。
1.主觀下線:
當主伺服器發生故障時,此時一個sentinel發現了故障,系統並不會馬上進行failover過程(這個現象稱為主觀下線),它會向網路中的其他Sentinel進行確認。
2.客觀下線:
接著其他Sentinel也陸續發現故障,這個時候其中一個Sentinel就會發起投票。一定數量的哨兵(在組態檔中指定)確認Master被標記為主觀下線,此時將Master標記為客觀下線。
3.sentinel的leader選舉:
要想完成故障切換(將故障master剔除,並將一個slave提升為master)就必須先選舉一個leader。最先發現故障的sentinel向其他哨兵發起請求成為leader,其他哨兵在沒有同意別的哨兵的leader請求時,就會把票投給該sentinel。當半數以上的sentinel投票通過後就認定該sentinel為leader。接下來的故障切換有該leader完成。
4.master選舉:
leader選好後將故障master剔除,從slave中挑選一個成為master。遵照的原則如下:
5.新Master再通過釋出訂閱模式通知所有sentinel更新監控主機資訊。
6.故障的主伺服器修復後將成為從伺服器繼續工作。
範例:故障發生時:
故障切換:
Master重新上線後:
設定哨兵組態檔 sentinel.conf
#Sentinel monitor <name> <ip> <port> <quorum>
到此這篇關於Redis超詳細講解高可用主從複製基礎與哨兵模式方案的文章就介紹到這了,更多相關Redis 高可用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45