這篇文章給大家分享的是有關(guān)redis中主從復制和哨兵模式的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
我們提供的服務有:成都網(wǎng)站建設、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、延安ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的延安網(wǎng)站制作公司
主從復制指的是把一臺Redis服務器的數(shù)據(jù)復制到其他Redis服務器上,前者稱為主節(jié)點Master,后者稱為從節(jié)點Slave,只能從Master單向復制到Slave,一般Master以寫操作為主,Slave以讀操作為主,實現(xiàn)讀寫分離。
作用
數(shù)據(jù)冗余:主從復制實現(xiàn)了數(shù)據(jù)的熱備份,是持久化之外的一種數(shù)據(jù)冗余方式。
故障恢復:當主節(jié)點出現(xiàn)問題時,可以由從節(jié)點提供服務,實現(xiàn)快速的故障恢復;實際上是一種服務的冗余。
負載均衡:在主從復制的基礎上,配合讀寫分離,可以由主節(jié)點提供寫服務,由從節(jié)點提供讀服務(即寫Redis數(shù)據(jù)時應用連接主節(jié)點,讀Redis數(shù)據(jù)時應用連接從節(jié)點),分擔服務器負載;尤其是在寫少讀多的場景下,通過多個從節(jié)點分擔讀負載,可以大大提高Redis服務器的并發(fā)量。
高可用基石:除了上述作用以外,主從復制還是哨兵和集群能夠?qū)嵤┑幕A,因此說主從復制是Redis高可用的基礎。
命令
命令 | 作用 |
---|---|
slaveofhost port | 將當前服務器轉(zhuǎn)變?yōu)橹付ǚ掌鞯膹膶俜掌鳌H绻咽莝lave則停止對舊主服務器的同步,丟棄舊數(shù)據(jù)集,轉(zhuǎn)而開始對新主服務器進行同步。SLAVEOF NO ONE將使得這個從屬服務器關(guān)閉復制功能,并從從屬服務器轉(zhuǎn)變回主服務器,原來同步所得的數(shù)據(jù)集不會被丟棄。 |
info[section] | INFO命令以一種易于理解和閱讀的格式,返回關(guān)于Redis服務器的各種信息和統(tǒng)計數(shù)值。通過給定可選的參數(shù)section,可以讓命令只返回某一部分的信息: |
配置
以單機多服務為例(正常是多機多服務,然我只有一臺服務器)
首先每個redis客戶端都默認是主機,可以通過info replication命令查看。
那么我們現(xiàn)在要同時開三個客戶端,模擬一主兩從,所以要修改配置:
修改端口號
修改pid名字
修改log名字
修改rdb名字
設置主機連接(可不選,用命令行)
先拷貝兩份配置文件作為從機配置,主機可使用默認。
以redis80.conf為例依次修改上述五點配置,81只改前四點。
然后啟動他們(79、80、81)
設置主從:
80是在配置文件設置(永久式)好的,直接查看:
81沒有配置,可以手動命令行設置
此時查看79(master):
復制原理
全量復制
從機每次連接主機時會全量復制,把主機的全部數(shù)據(jù)復制到從機。
增量復制
從機連上主機后,對于主機后面更新的數(shù)據(jù),會只針對這部分數(shù)據(jù)同步更新給從機。
測試
從機默認只讀,會增量復制同步主機的數(shù)據(jù):
主機宕機情況:
3.從機宕機情況:
嵌套主從
如圖79是80的主機,而80又是81的主機,這種嵌套主從關(guān)系。
哨兵模式
上面的80上位和嵌套主從都是我們手動命令行輸入的,其目的就是避免主機宕機后寫操作的空窗期,這些都是需要人工干預。
哨兵Sentinel會作為一個獨立的進程獨立運行,其原理是哨兵通過發(fā)送命令,等待Redis服務器響應,從而監(jiān)控運行的多個Redis服務器。
如果哨兵檢測到主機下線,則會選一個從機「上位」(自動故障遷移)成為新的主機。如果原主機上線,原主機將變成新主機的從機。其原理是通過發(fā)布訂閱模式通知其他服務器,修改配置文件,從而切換主機。
如果哨兵宕機怎么辦?可以使用多哨兵模式來互相監(jiān)控。
圖片摘自https://www.jianshu.com/p/06ab9daf921d,侵刪
主觀下線(Subjectively Down, 簡稱 SDOWN)指的是單個哨兵實例對服務器做出的下線判斷。
客觀下線(Objectively Down, 簡稱 ODOWN)指的是多個哨兵實例在對同一個服務器做出主觀下線判斷, 并且通過 SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服務器下線判斷。
當主機客觀下線后,哨兵會投票出新的主機(具體算法略 ),進行自動故障遷移(failover),通過發(fā)布訂閱通知其他服務器切換主機。
配置哨兵
首先在安裝目錄下有一個詳細注解的哨兵配置:
新建sentinel.conf來監(jiān)視6379,其余默認即可:
啟動哨兵:
測試
多哨兵模式,配置不同端口的配置文件來開啟多個哨兵客戶端,然后照葫蘆畫瓢即可(偷懶 )
感謝各位的閱讀!關(guān)于“Redis中主從復制和哨兵模式的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
分享文章:Redis中主從復制和哨兵模式的示例分析
標題路徑:http://m.2m8n56k.cn/article28/iesocp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計、ChatGPT、網(wǎng)站導航、企業(yè)建站、商城網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)