欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)同步的方法和裝置的制造方法

文檔序號:9474379閱讀:253來源:國知局
一種數(shù)據(jù)同步的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)同步的方法和裝置。
【背景技術(shù)】
[0002]數(shù)據(jù)同步是構(gòu)建Redis集群必須解決的問題,用于把主節(jié)點(diǎn)上接收到的數(shù)據(jù)同步到集群中的其它所有節(jié)點(diǎn)上的Redis上。
[0003]目前Redis數(shù)據(jù)同步主要依靠Redis自帶的同步機(jī)制來實(shí)現(xiàn)。通常集群內(nèi)的所有Redis節(jié)點(diǎn)之間互相連通,構(gòu)成一個(gè)樹狀拓?fù)?,在整個(gè)樹狀拓?fù)淅镏挥幸粋€(gè)主節(jié)點(diǎn)用于接收數(shù)據(jù)寫入請求,另外的節(jié)點(diǎn)用于支持讀請求。寫入主節(jié)點(diǎn)的數(shù)據(jù)通過Redis同步協(xié)議將操作日志同步到所有其它Redis節(jié)點(diǎn)上,目標(biāo)Redis節(jié)點(diǎn)執(zhí)行接收到的操作日志以完成數(shù)據(jù)同步。
[0004]在目前的技術(shù)方案下,存在以下幾個(gè)困難點(diǎn):
[0005]I)集群部署是有拓?fù)湫螤畹臉錉罱Y(jié)構(gòu),運(yùn)維需要去關(guān)心拓?fù)涞淖兓?,因而增加了運(yùn)維難度;
[0006]2)同一集群只能有一個(gè)主結(jié)節(jié)接收數(shù)據(jù)寫入,很難支持多個(gè)寫入源之間互相同步;
[0007]3)不支持異構(gòu)存儲,即:Redis主節(jié)點(diǎn)只能把數(shù)據(jù)同步到其它Redis節(jié)點(diǎn)上,不能同步到其它存儲結(jié)構(gòu)上(例如MySQL);
[0008]4) Redis自帶同步機(jī)制下,操作日志被記錄在內(nèi)存中,不做持久化,如果主從斷開時(shí)間太長,只能做全量數(shù)據(jù)同步。

【發(fā)明內(nèi)容】

[0009]有鑒于此,本發(fā)明提供一種數(shù)據(jù)同步的方法和裝置,一方面能夠支持多個(gè)寫入源之間相互同步,并且避免了在集群部署過程中形成的拓?fù)湫蔚臉錉罱Y(jié)構(gòu),降低了運(yùn)維難度;另一方面實(shí)現(xiàn)了操作日志的持久化,在一定程度上減少了做全量數(shù)據(jù)同步的次數(shù);再一方面本發(fā)明的技術(shù)方案支持不同存儲結(jié)構(gòu)對數(shù)據(jù)的同步,能夠?qū)?shù)據(jù)同步到持久化的存儲結(jié)構(gòu)上,增加了數(shù)據(jù)同步的可靠性。
[0010]為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)同步的方法。
[0011]本發(fā)明的數(shù)據(jù)同步的方法包括:數(shù)據(jù)總線接收與之相連的集群主節(jié)點(diǎn)的操作日志;所述操作日志用于保存集群主節(jié)點(diǎn)因數(shù)據(jù)變更而生成的觸發(fā)數(shù)據(jù)變更的命令;數(shù)據(jù)總線從所述操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令,然后根據(jù)所述命令分別得到與該數(shù)據(jù)總線相連的從節(jié)點(diǎn)和/或任意集群的主節(jié)點(diǎn)的第一操作指令,再將所述第一操作指令發(fā)送給該操作指令對應(yīng)的與該數(shù)據(jù)總線相連的從節(jié)點(diǎn)和/或任意集群的主節(jié)點(diǎn);所述從節(jié)點(diǎn)和/或任意集群的主節(jié)點(diǎn)運(yùn)行所接收到的第一操作指令,以完成從所述集群主節(jié)點(diǎn)到所述從節(jié)點(diǎn)和/或任意集群的主節(jié)點(diǎn)的數(shù)據(jù)同步。
[0012]可選地,所述數(shù)據(jù)總線獲取與之連接的集群主節(jié)點(diǎn)的操作日志的步驟之后包括:數(shù)據(jù)總線根據(jù)所述操作日志分別得出對應(yīng)于多個(gè)存儲結(jié)構(gòu)的第二操作指令,然后將所述第二操作指令發(fā)送給該操作指令所對應(yīng)的與所述數(shù)據(jù)總線相連的存儲結(jié)構(gòu);所述存儲結(jié)構(gòu)運(yùn)行所述第二操作指令以實(shí)現(xiàn)不同存儲結(jié)構(gòu)對數(shù)據(jù)的同步。
[0013]可選地,所述數(shù)據(jù)總線接收與之相連的集群主節(jié)點(diǎn)的操作日志的步驟之后包括:數(shù)據(jù)總線將所述操作日志存入隊(duì)列中;并且數(shù)據(jù)總線從所述操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令的步驟包括:數(shù)據(jù)總線從所述隊(duì)列的操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令。
[0014]根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)同步的裝置。
[0015]本發(fā)明的數(shù)據(jù)同步的裝置包括:模擬Redis從節(jié)點(diǎn)模塊,用于接收之相連的集群主節(jié)點(diǎn)的操作日志;所述操作日志用于保存集群主節(jié)點(diǎn)因數(shù)據(jù)變更而生成的觸發(fā)數(shù)據(jù)變更的命令;第一命令解析器,用于從所述操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令,然后根據(jù)所述命令分別得到與該數(shù)據(jù)總線相連的從節(jié)點(diǎn)和/或任意集群的主節(jié)點(diǎn)的第一操作指令,最后將所述第一操作指令發(fā)送給該操作指令對應(yīng)的與該數(shù)據(jù)總線相連的從節(jié)點(diǎn)和/或任意集群的主節(jié)點(diǎn)。
[0016]可選地,還包括第二命令解析器;所述第二命令解析器,用于根據(jù)所述操作日志分別得出對應(yīng)于多個(gè)存儲結(jié)構(gòu)的第二操作指令,然后將所述第二操作指令發(fā)送給該操作指令所對應(yīng)的與所述數(shù)據(jù)總線相連的存儲結(jié)構(gòu)。
[0017]可選地,還包括日志存儲模塊,用于將所述操作日志存入隊(duì)列中;并且所述第一命令解析器還用于從所述日志存儲模塊保存的操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令。
[0018]根據(jù)本發(fā)明的技術(shù)方案,一方面由于增加了數(shù)據(jù)總線,能夠支持多個(gè)寫入源之間相互同步,同時(shí)由于集群主節(jié)、從節(jié)點(diǎn)直接與數(shù)據(jù)總線相連,因而避免了在集群部署過程中形成的拓?fù)湫蔚臉錉罱Y(jié)構(gòu),降低了運(yùn)維難度;另一方面數(shù)據(jù)總線對所獲取到的操作日志進(jìn)行了持久化保存,在一定程度上減少了做全量數(shù)據(jù)同步的次數(shù);再一方面本發(fā)明的技術(shù)方案中,由于數(shù)據(jù)能夠根據(jù)獲取到的操作日志得到不同存儲結(jié)構(gòu)的操作指令,因而能夠支持不同存儲結(jié)構(gòu)對數(shù)據(jù)的同步,在一定程度上增加了數(shù)據(jù)同步的可靠性。
【附圖說明】
[0019]附圖用于更好地理解本發(fā)明,不構(gòu)成對本發(fā)明的不當(dāng)限定。其中:
[0020]圖1是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)同步的裝置的示意圖;
[0021]圖2是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)同步的方法的示意圖。
【具體實(shí)施方式】
[0022]以下結(jié)合附圖對本發(fā)明的示范性實(shí)施例做出說明,其中包括本發(fā)明實(shí)施例的各種細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識至IJ,可以對這里描述的實(shí)施例做出各種改變和修改,而不會背離本發(fā)明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對公知功能和結(jié)構(gòu)的描述。
[0023]圖1是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)同步的裝置的示意圖。如圖1所示,數(shù)據(jù)同步的裝置10即為本發(fā)明實(shí)施例技術(shù)方案中所提及的數(shù)據(jù)總線,主要包括模擬Redis從節(jié)點(diǎn)模塊11、以及第一命令解析器12 ;模擬Redis從節(jié)點(diǎn)模塊11、以及第一命令解析器12都以軟件的方式實(shí)現(xiàn)。
[0024]模擬Redis從節(jié)點(diǎn)模塊11,用于接收之相連的集群主節(jié)點(diǎn)的操作日志;所述操作日志用于保存集群主節(jié)點(diǎn)因數(shù)據(jù)變更而生成的觸發(fā)數(shù)據(jù)變更的命令;當(dāng)一個(gè)集群主節(jié)點(diǎn)(即:Redis Master)上面有數(shù)據(jù)更新時(shí),Redis Master通過主從同步協(xié)議,將產(chǎn)生數(shù)據(jù)變更的命令發(fā)送到數(shù)據(jù)總線的模擬Redis從節(jié)點(diǎn)模塊上。
[0025]第一命令解析器12,用于從所述操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令,然后根據(jù)所述命令分別得到與該數(shù)據(jù)總線相連的從節(jié)點(diǎn)和/或任意集群的主節(jié)點(diǎn)的第一操作指令,最后將所述第一操作指令發(fā)送給該操作指令對應(yīng)的與該數(shù)據(jù)總線相連的從節(jié)點(diǎn)和/或任意集群的主節(jié)點(diǎn)。
[0026]本發(fā)明的數(shù)據(jù)同步的裝置10還可包括第二命令解析器(圖中未示出),用于根據(jù)所述操作日志分別得出對應(yīng)于多個(gè)存儲結(jié)構(gòu)的第二操作指令,然后將所述第二操作指令發(fā)送給該操作指令所對應(yīng)的與所述數(shù)據(jù)總線相連的存儲結(jié)構(gòu)。
[0027]本發(fā)明的數(shù)據(jù)同步的裝置10還可包括日志存儲模塊(圖中未示出),用于保存數(shù)據(jù)總線的模擬Redis從節(jié)點(diǎn)模塊11所接收到的集群主節(jié)點(diǎn)因數(shù)據(jù)變更所產(chǎn)生的Redis命令日志。當(dāng)數(shù)據(jù)總線中的模擬Redis從節(jié)點(diǎn)模塊11接收到從集群主節(jié)點(diǎn)Redis Master上
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
田阳县| 枣庄市| 舒城县| 双城市| 工布江达县| 北流市| 习水县| 无棣县| 乐平市| 怀远县| 新乡县| 东安县| 彩票| 丰台区| 交口县| 萝北县| 定安县| 灵山县| 盐城市| 商南县| 涿鹿县| 仪陇县| 宁波市| 贵州省| 仁化县| 沙田区| 丹东市| 财经| 西藏| 墨玉县| 玛纳斯县| 池州市| 浦东新区| 会宁县| 金山区| 台湾省| 金阳县| 永仁县| 大化| 祥云县| 威信县|