版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MySQL與Redis緩存的同步方案本文介紹MySQL與Redis緩存的同步的兩種方案通過MySQL自動(dòng)同步刷新Redis,MySQL觸發(fā)器+UDF函數(shù)實(shí)現(xiàn)解析MySQL的binlog實(shí)現(xiàn),將數(shù)據(jù)庫中的數(shù)據(jù)同步到Redis一、方案1(UDF)場(chǎng)景分析:當(dāng)我們對(duì)MySQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)操作時(shí),同時(shí)將相應(yīng)的數(shù)據(jù)同步到Redis中,同步到Redis之后,查詢的操作就從Redis中查找過程大致如下:在MySQL中對(duì)要操作的數(shù)據(jù)設(shè)置觸發(fā)器Trigger,監(jiān)聽操作客戶端(NodeServer)向MySQL中寫入數(shù)據(jù)時(shí),觸發(fā)器會(huì)被觸發(fā),觸發(fā)之后調(diào)用MySQL的UDF函數(shù)UDF函數(shù)可以把數(shù)據(jù)寫入到Redis中,從而達(dá)到同步的效果方案分析:這種方案適合于讀多寫少,并且不存并發(fā)寫的場(chǎng)景因?yàn)镸ySQL觸發(fā)器本身就會(huì)造成效率的降低,如果一個(gè)表經(jīng)常被操作,這種方案顯示是不合適的演示案例下面是MySQL的表下面是UDF的解析代碼定義對(duì)應(yīng)的觸發(fā)器二、方案2(解析binlog)在介紹方案2之前我們先來介紹一下MySQL復(fù)制的原理,如下圖所示:主服務(wù)器操作數(shù)據(jù),并將數(shù)據(jù)寫入Binlog從服務(wù)器調(diào)用I/O線程讀取主服務(wù)器的Binlog,并且寫入到自己的Relaylog中,再調(diào)用SQL線程從Relaylog中解析數(shù)據(jù),從而同步到自己的數(shù)據(jù)庫中方案2就是:上面MySQL的整個(gè)復(fù)制流程可以總結(jié)為一句話,那就是:從服務(wù)器讀取主服務(wù)器Binlog中的數(shù)據(jù),從而同步到自己的數(shù)據(jù)庫中我們方案2也是如此,就是在概念上把主服務(wù)器改為MySQL,把從服務(wù)器改為Redis而已(如下圖所示),當(dāng)MySQL中有數(shù)據(jù)寫入時(shí),我們就解析MySQL的Binlog,然后將解析出來的數(shù)據(jù)寫入到Redis中,從而達(dá)到同步的效果例如下面是一個(gè)云數(shù)據(jù)庫實(shí)例分析:搜索后端架構(gòu)師公眾號(hào)回復(fù)“架構(gòu)整潔”,送你一份驚喜禮包。云數(shù)據(jù)庫與本地?cái)?shù)據(jù)庫是主從關(guān)系。云數(shù)據(jù)庫作為主數(shù)據(jù)庫主要提供寫,本地?cái)?shù)據(jù)庫作為從數(shù)據(jù)庫從主數(shù)據(jù)庫中讀取數(shù)據(jù)本地?cái)?shù)據(jù)庫讀取到數(shù)據(jù)之后,解析Binlog,然后將數(shù)據(jù)寫入寫入同步到Redis中,然后客戶端從Redis讀數(shù)據(jù)這個(gè)技術(shù)方案的難點(diǎn)就在于:
如何解析MySQL的BinLog。但是這需要對(duì)binlog文件以及MySQL有非常深入的理解,同時(shí)由于binlog存在Statement/Row/Mixedlevel多種形式,分析binlog實(shí)現(xiàn)同步的工作量是非常大的Canal開源技術(shù)canal是阿里巴巴旗下的一款開源項(xiàng)目,純Java開發(fā)?;跀?shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù)訂閱&消費(fèi),目前主要支持了MySQL(也支持mariaDB)開源參考地址有:/liukelin/canal_mysql_nosql_sync工作原理(模仿MySQL復(fù)制):canal模擬mysqlslave的交互協(xié)議,偽裝自己為mysqlslave,向mysqlmaster發(fā)送dump協(xié)議mysqlmaster收到dump請(qǐng)求,開始推送binarylog給slave(也就是canal)canal解析binarylog對(duì)象(原始為byte流)架構(gòu):server代表一個(gè)canal運(yùn)行實(shí)例,對(duì)應(yīng)于一個(gè)jvminstance對(duì)應(yīng)于一個(gè)數(shù)據(jù)隊(duì)列(1個(gè)server對(duì)應(yīng)1..n個(gè)instance)instance模塊:eventParser(數(shù)據(jù)源接入,模擬slave協(xié)議和master進(jìn)行交互,協(xié)議解析)eventSink(Parser和Store鏈接器,進(jìn)行數(shù)據(jù)過濾,加工,分發(fā)的工作)eventStore(數(shù)據(jù)存儲(chǔ))metaManager(增量訂閱&消費(fèi)信息管理器)大致的解析過程如下:parse解析MySQL的Binlog,然后將數(shù)據(jù)放入到sink中sink對(duì)數(shù)據(jù)進(jìn)行過濾,加工,分發(fā)store從sink中讀取解析好的數(shù)據(jù)存儲(chǔ)起來然后自己用設(shè)計(jì)代碼將store中的數(shù)據(jù)同步寫入Redis中就可以了其中parse/sink是框架封裝好的,我們做的是store的數(shù)據(jù)讀取那一步更多關(guān)于Cancl可以百度搜索下面是運(yùn)行拓?fù)鋱DMySQL表的同步,采用責(zé)任鏈模式,每張表對(duì)應(yīng)一個(gè)Filter。例如zvsync中要用到的類設(shè)計(jì)如下:下面是具體化的zvsync中要用到的類,每當(dāng)新增或者刪除表時(shí),直接進(jìn)行增刪就可以了三、附加本文上面所介紹的都是從MySQL中同步到緩存中。但是在實(shí)際
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課件:中職教學(xué)診改的制度特質(zhì)與復(fù)核要求
- 2025年倉庫設(shè)備檢驗(yàn)報(bào)告合同
- 2025年中航安盟保險(xiǎn)四川省分公司招聘筆試參考題庫含答案解析
- 2025年北京融和晟源售電有限公司招聘筆試參考題庫含答案解析
- 2025年粵教新版必修2歷史上冊(cè)月考試卷含答案
- 2025年魯科五四新版九年級(jí)歷史下冊(cè)月考試卷
- 二零二五年度寵物醫(yī)院信息化建設(shè)與運(yùn)營(yíng)服務(wù)合同3篇
- 2025年冀教新版選修6歷史下冊(cè)階段測(cè)試試卷含答案
- 2025年粵教滬科版八年級(jí)歷史上冊(cè)階段測(cè)試試卷含答案
- 2024年度青海省公共營(yíng)養(yǎng)師之四級(jí)營(yíng)養(yǎng)師模擬考試試卷B卷含答案
- 《openEuler操作系統(tǒng)》考試復(fù)習(xí)題庫(含答案)
- 《天潤(rùn)乳業(yè)營(yíng)運(yùn)能力及風(fēng)險(xiǎn)管理問題及完善對(duì)策(7900字論文)》
- 醫(yī)院醫(yī)學(xué)倫理委員會(huì)章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 2024-2025學(xué)年人教版生物八年級(jí)上冊(cè)期末綜合測(cè)試卷
- 2025年九省聯(lián)考新高考 語文試卷(含答案解析)
- 死亡病例討論總結(jié)分析
- 第二章 會(huì)展的產(chǎn)生與發(fā)展
- 空域規(guī)劃與管理V2.0
- JGT266-2011 泡沫混凝土標(biāo)準(zhǔn)規(guī)范
- 商戶用電申請(qǐng)表
評(píng)論
0/150
提交評(píng)論