更新時(shí)間:2022-02-15 09:44:15 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2423次
Redis主從復(fù)制也應(yīng)該是相同原理在其他數(shù)據(jù)庫(kù)中的應(yīng)用,也可以稱為讀寫分離;還有一個(gè)主數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)。
寫數(shù)據(jù)庫(kù)一般是主數(shù)據(jù)庫(kù),而讀數(shù)據(jù)庫(kù)則是從數(shù)據(jù)庫(kù)。
缺點(diǎn):由于寫數(shù)據(jù)庫(kù)的寫操作和分布,存在主從數(shù)據(jù)與寫數(shù)據(jù)庫(kù)的同步操作不一致的可能。
* 如果只有一個(gè)主庫(kù),多組從庫(kù),不能保證高可用(需要手動(dòng)維護(hù),切換主庫(kù))
一般原則:
(1)主庫(kù)(寫)正常配置
(2)數(shù)據(jù)庫(kù)中配置的主數(shù)據(jù)庫(kù)
(3)接收到SYNC指令后,通過(guò)RDB快照接收當(dāng)前數(shù)據(jù)庫(kù),然后發(fā)送隊(duì)列保存快照創(chuàng)建周期和操作。
(4)從數(shù)據(jù)庫(kù)接收到快照后,執(zhí)行本地;并接收主庫(kù)隊(duì)列的增量同步數(shù)據(jù)
(5)所有寫入操作都通過(guò)主庫(kù),而主庫(kù)是從服務(wù)器同步到從服務(wù)器推送增量數(shù)據(jù)異步執(zhí)行的。
(6)大部分的讀操作都是從數(shù)據(jù)庫(kù)進(jìn)行的
(7)Redis雖然是單線程,但不代表所有操作都是單線程,只是主線程是單線程模式。為了保持 REDIS 的高性能讀寫,主數(shù)據(jù)的寫操作和從數(shù)據(jù)庫(kù)同步的數(shù)據(jù)是異步的。
如何配置:
在配置文件中添加(僅來(lái)自數(shù)據(jù)庫(kù)):
5.0 緊隨其后:
REPLICAOF 本地主機(jī)6379
前
奴隸本地主機(jī)6379
如果主庫(kù)掛了,只能手動(dòng)切換,從服務(wù)中取消命令
REPLICAOF沒(méi)有人
顧名思義,哨兵就是站崗——監(jiān)控。那么什么是監(jiān)控呢?這是即將來(lái)自一個(gè)主機(jī),一個(gè)master數(shù)據(jù)庫(kù)如果崩潰了,那么服務(wù)就中斷了,那么sentinel就對(duì)應(yīng)了這個(gè)問(wèn)題。
當(dāng)主庫(kù)掛起時(shí),可以使用哨兵監(jiān)控(也可以使用Guard Wiring幫助理解),將從服務(wù)器轉(zhuǎn)換為主服務(wù)器。哨兵也可以相互監(jiān)控。
配置:
(1)我使用的是源碼提供的u??til目錄下的ITILL腳本,安裝3個(gè)端口的Redis-Server服務(wù)
(2)在/etc/redis/對(duì)應(yīng)配置文件中添加遞增
哨兵監(jiān)控大師127.0。0.1 6379 2
最后一個(gè)數(shù)字表示投票選舉新主節(jié)點(diǎn)的票數(shù)
(3)然后在/etc/init.d/的對(duì)應(yīng)配置中,添加--sentinelstarts
(4)重啟服務(wù):服務(wù)redis_6xxx重啟
PS:哨兵模式,會(huì)自動(dòng)修改配置文件,默認(rèn)應(yīng)該是輪詢模式,看日志,服務(wù)掛掉后不要非常實(shí)時(shí)切換主節(jié)點(diǎn)。
集群模式可以作為滑塊模式使用,可以增加橫向擴(kuò)展和切片的功能。
即使使用哨兵模式,系統(tǒng)可能仍有數(shù)據(jù)量增加,這種情況下可能需要數(shù)據(jù)執(zhí)行服務(wù)器部分(客戶端切片,不同客戶端可以根據(jù)需要連接不同的REDIS數(shù)據(jù)庫(kù))
集群模式實(shí)現(xiàn)了服務(wù)器的分區(qū)功能。
客戶端分區(qū)是客戶端決定了數(shù)據(jù)將存儲(chǔ)在哪個(gè)REDIS節(jié)點(diǎn)或讀取哪個(gè)Redis節(jié)點(diǎn)。大多數(shù)客戶端都實(shí)現(xiàn)了客戶端分區(qū)。
代理分區(qū)是指客戶端將請(qǐng)求發(fā)送給代理,然后代理決定哪個(gè)節(jié)點(diǎn)寫入數(shù)據(jù)或讀取數(shù)據(jù)。代理根據(jù)分區(qū)規(guī)則確定哪些REDIS實(shí)例,然后根據(jù)Redis的響應(yīng)結(jié)果返回給客戶端。Redis 和 memcached Twemproxy的代理實(shí)現(xiàn)
Query Routing是指客戶端隨機(jī)請(qǐng)求任意一個(gè) REDIS 實(shí)例,然后將請(qǐng)求轉(zhuǎn)發(fā)到正確的 REDIS 節(jié)點(diǎn)。Redis Cluster 實(shí)現(xiàn)了混合形式的查詢路由,但并不直接將請(qǐng)求從一個(gè) Redis 節(jié)點(diǎn)轉(zhuǎn)發(fā)到另一個(gè)節(jié)點(diǎn),而是直接在客戶端的幫助下進(jìn)行。重定向到正確的 REDIS 節(jié)點(diǎn)。如果大家想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Redis教程,里面的課程更加細(xì)致全面,通俗易懂,即使沒(méi)有基礎(chǔ)也能聽(tīng)懂,希望對(duì)大家的學(xué)習(xí)能夠有所幫助。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743