本篇內容主要講解“怎么實(shí)現與緩存的同步”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強。下面就讓小編來(lái)帶大家學(xué)習“怎么實(shí)現MySQL與Redis緩存的同步”吧!
當我們對MySQL數據庫進(jìn)行數據操作時(shí),同時(shí)將相應的數據同步到Redis中,同步到Redis之后,查詢(xún)的操作就從Redis中查找
下面是MySQL的表
下面是UDF的解析代碼
定義對應的觸發(fā)器
在介紹方案2之前我們先來(lái)介紹一下MySQL復制的原理,如下圖所示:
方案2就是:
例如下面是一個(gè)實(shí)例分析:
這個(gè)技術(shù)方案的難點(diǎn)就在于: 如何解析MySQL的Bin Log。但是這需要對binlog文件以及MySQL有非常深入的理解,同時(shí)由于binlog存在Statement/Row/Mixedlevel多種形式,分析binlog實(shí)現同步的工作量是非常大的
canal是阿里巴巴旗下的一款開(kāi)源項目,純Java開(kāi)發(fā)?;跀祿煸隽咳罩窘馕?,提供增量數據訂閱&消費,目前主要支持了MySQL(也支持mariaDB)
開(kāi)源參考地址有:https://github.com/liukelin/canal_mysql__sync
server代表一個(gè)canal運行實(shí)例,對應于一個(gè)jvm
instance對應于一個(gè)數據隊列 (1個(gè)server對應1..n個(gè)instance)
instance模塊:
大致的解析過(guò)程如下:
更多關(guān)于Cancl可以百度搜索
MySQL表的同步,采用責任鏈模式,每張表對應一個(gè)Filter。例如zvsync中要用到的類(lèi)設計如下:
下面是具體化的zvsync中要用到的類(lèi),每當新增或者刪除表時(shí),直接進(jìn)行增刪就可以了
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站