Redis主從復制以及主從復制技術原理_第1頁
Redis主從復制以及主從復制技術原理_第2頁
Redis主從復制以及主從復制技術原理_第3頁
Redis主從復制以及主從復制技術原理_第4頁
Redis主從復制以及主從復制技術原理_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、 Redis 主從復制以及主從復制技術原理目 錄 TOC o 1-3 h z u HYPERLINK l _Toc13031237 一.概述 PAGEREF _Toc13031237 h 3 HYPERLINK l _Toc13031238 1.面臨問題 PAGEREF _Toc13031238 h 3 HYPERLINK l _Toc13031239 2.解決辦法 PAGEREF _Toc13031239 h 3 HYPERLINK l _Toc13031240 二.主從復制 PAGEREF _Toc13031240 h 4 HYPERLINK l _Toc13031241 3.什么是主從復

2、制 PAGEREF _Toc13031241 h 4 HYPERLINK l _Toc13031242 4.主從復制的作用 PAGEREF _Toc13031242 h 4 HYPERLINK l _Toc13031243 三.主從復制啟用 PAGEREF _Toc13031243 h 5 HYPERLINK l _Toc13031244 四.主從復制原理 PAGEREF _Toc13031244 h 5概述Redis是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。從2010年3月15日起,Redis的開發(fā)工作由V

3、Mware主持。從2013年5月開始,Redis的開發(fā)由Pivotal贊助。在現(xiàn)有企業(yè)中80%公司大部分使用的是redis單機服務,在實際的場景當中單一節(jié)點的redis容易面臨風險。面臨問題機器故障。我們部署到一臺 Redis 服務器,當發(fā)生機器故障時,需要遷移到另外一臺服務器并且要保證數(shù)據(jù)是同步的。而數(shù)據(jù)是最重要的,如果你不在乎,基本上也就不會使用 Redis 了。容量瓶頸。當我們有需求需要擴容 Redis 內(nèi)存時,從 16G 的內(nèi)存升到 64G,單機肯定是滿足不了。當然,你可以重新買個 128G 的新機器。解決辦法要實現(xiàn)分布式數(shù)據(jù)庫的更大的存儲容量和承受高并發(fā)訪問量,我們會將原來集中式數(shù)據(jù)

4、庫的數(shù)據(jù)分別存儲到其他多個網(wǎng)絡節(jié)點上。Redis 為了解決這個單一節(jié)點的問題,也會把數(shù)據(jù)復制多個副本部署到其他節(jié)點上進行復制,實現(xiàn) Redis的高可用,實現(xiàn)對數(shù)據(jù)的冗余備份,從而保證數(shù)據(jù)和服務的高可用。主從復制什么是主從復制圖片描述主從復制,是指將一臺Redis服務器的數(shù)據(jù),復制到其他的Redis服務器。前者稱為主節(jié)點(master),后者稱為從節(jié)點(slave),數(shù)據(jù)的復制是單向的,只能由主節(jié)點到從節(jié)點。默認情況下,每臺Redis服務器都是主節(jié)點;且一個主節(jié)點可以有多個從節(jié)點(或沒有從節(jié)點),但一個從節(jié)點只能有一個主節(jié)點。主從復制的作用數(shù)據(jù)冗余:主從復制實現(xiàn)了數(shù)據(jù)的熱備份,是持久化之外的一種

5、數(shù)據(jù)冗余方式。故障恢復:當主節(jié)點出現(xiàn)問題時,可以由從節(jié)點提供服務,實現(xiàn)快速的故障恢復;實際上是一種服務的冗余。負載均衡:在主從復制的基礎上,配合讀寫分離,可以由主節(jié)點提供寫服務,由從節(jié)點提供讀服務(即寫Redis數(shù)據(jù)時應用連接主節(jié)點,讀Redis數(shù)據(jù)時應用連接從節(jié)點),分擔服務器負載;尤其是在寫少讀多的場景下,通過多個從節(jié)點分擔讀負載,可以大大提高Redis服務器的并發(fā)量。讀寫分離:可以用于實現(xiàn)讀寫分離,主庫寫、從庫讀,讀寫分離不僅可以提高服務器的負載能力,同時可根據(jù)需求的變化,改變從庫的數(shù)量;高可用基石:除了上述作用以外,主從復制還是哨兵和集群能夠?qū)嵤┑幕A,因此說主從復制是Redis高可用

6、的基礎。主從復制啟用從節(jié)點開啟主從復制,有3種方式:配置文件: 在從服務器的配置文件中加入:slaveof啟動命令: redis-server啟動命令后加入 -slaveof客戶端命令: Redis服務器啟動后,直接通過客戶端執(zhí)行命令:slaveof,則該Redis實例成為從節(jié)點。通過 info replication 命令可以看到復制的一些信息主從復制原理主從復制過程大體可以分為3個階段:連接建立階段(即準備階段)、數(shù)據(jù)同步階段、命令傳播階段。在從節(jié)點執(zhí)行 slaveof 命令后,復制過程便開始運作,下面圖示大概可以看到,從圖中可以看出復制過程大致分為6個過程圖片描述主從配置之后的日志記錄也

7、可以看出這個流程1)保存主節(jié)點(master)信息。執(zhí)行 slaveof 后 Redis 會打印如下日志:圖片描述2)從節(jié)點(slave)內(nèi)部通過每秒運行的定時任務維護復制相關邏輯,當定時任務發(fā)現(xiàn)存在新的主節(jié)點后,會嘗試與該節(jié)點建立網(wǎng)絡連接圖片描述從節(jié)點與主節(jié)點建立網(wǎng)絡連接從節(jié)點會建立一個 socket 套接字,從節(jié)點建立了一個端口為51234的套接字,專門用于接受主節(jié)點發(fā)送的復制命令。從節(jié)點連接成功后打印如下日志:圖片描述如果從節(jié)點無法建立連接,定時任務會無限重試直到連接成功或者執(zhí)行 slaveof no one 取消復制關于連接失敗,可以在從節(jié)點執(zhí)行 info replication 查看

8、 master_link_down_since_seconds 指標,它會記錄與主節(jié)點連接失敗的系統(tǒng)時間。從節(jié)點連接主節(jié)點失敗時也會每秒打印如下日志,方便發(fā)現(xiàn)問題:#ErrorconditiononsocketforSYNC:socket_error_reason3)發(fā)送 ping 命令。連接建立成功后從節(jié)點發(fā)送 ping 請求進行首次通信,ping 請求主要目的如下:檢測主從之間網(wǎng)絡套接字是否可用。檢測主節(jié)點當前是否可接受處理命令。如果發(fā)送 ping 命令后,從節(jié)點沒有收到主節(jié)點的 pong 回復或者超時,比如網(wǎng)絡超時或者主節(jié)點正在阻塞無法響應命令,從節(jié)點會斷開復制連接,下次定時任務會發(fā)起重連。圖片描述圖片描述從節(jié)點發(fā)送的 ping 命令成功返回,Redis 打印如下日志,并繼續(xù)后續(xù)復制流程:圖片描述4)權(quán)限驗證。如果主節(jié)點設置了 requirepass 參數(shù),則需要密碼驗證,從節(jié)點必須配置 masterauth 參數(shù)保證與主節(jié)點相同的密碼才能通過驗證;如果驗證失敗復制將終止,從節(jié)點重新發(fā)起復制流程。5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論