一種數(shù)據(jù)同步的方法及系統(tǒng)的制作方法【專利摘要】本發(fā)明實(shí)施例提供的一種數(shù)據(jù)同步的方法及系統(tǒng),由同步服務(wù)器首先接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù),然后根據(jù)待同步數(shù)據(jù)的屬性信息查詢訂閱信息,得到待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端以及目標(biāo)內(nèi)存數(shù)據(jù)庫,最后將待同步數(shù)據(jù)分發(fā)到待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端,以使待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端將待同步數(shù)據(jù)同步到待同步數(shù)據(jù)對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中??梢钥闯觯恍枰脩?yīng)用程序進(jìn)行數(shù)據(jù)同步,也不需要通過應(yīng)用程序?qū)⑼降臄?shù)據(jù)轉(zhuǎn)換成鍵值對(duì)的格式。因此,本發(fā)明實(shí)施例中的技術(shù)方案,在降低數(shù)據(jù)同步操作與應(yīng)用程序的耦合度,提高系統(tǒng)的可擴(kuò)展性的同時(shí),還能保證物理數(shù)據(jù)庫中的數(shù)據(jù)和內(nèi)存數(shù)據(jù)中的數(shù)據(jù)一致,從而提高用戶查詢結(jié)果的準(zhǔn)確性?!緦@f明】一種數(shù)據(jù)同步的方法及系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及數(shù)據(jù)處理方法,特別涉及一種數(shù)據(jù)同步的方法及系統(tǒng)?!?br>背景技術(shù):
】[0002]物理數(shù)據(jù)庫是將數(shù)據(jù)存儲(chǔ)在物理設(shè)備上,如磁盤,而磁盤等物理設(shè)備存儲(chǔ)數(shù)據(jù)時(shí)進(jìn)行的輸入輸出操作是非常耗時(shí)的,從而導(dǎo)致物理數(shù)據(jù)庫對(duì)磁盤等物理設(shè)備的讀寫操作非常慢。內(nèi)存數(shù)據(jù)庫是將數(shù)據(jù)放在內(nèi)存中直接操作的數(shù)據(jù)庫,相對(duì)于磁盤等物理設(shè)備,內(nèi)存的數(shù)據(jù)讀寫速度要高出幾個(gè)數(shù)量級(jí),將數(shù)據(jù)保存在內(nèi)存中相比從物理數(shù)據(jù)庫上訪問能夠極大地提高應(yīng)用的性能。[0003]隨著訪問量不斷的增加,物理數(shù)據(jù)庫的讀寫效率已經(jīng)不能滿足當(dāng)前用戶的訪問需求。用戶訪問請(qǐng)求中數(shù)據(jù)查詢操作占用了較大比例,數(shù)據(jù)修改操作相對(duì)較少,因此目前的一種數(shù)據(jù)處理系統(tǒng)中,結(jié)合物理數(shù)據(jù)庫和內(nèi)存數(shù)據(jù)庫的特點(diǎn),將數(shù)據(jù)的查詢操作分流到內(nèi)存數(shù)據(jù)庫進(jìn)行,數(shù)據(jù)的修改操作仍在物理數(shù)據(jù)庫上進(jìn)行。因此,對(duì)物理數(shù)據(jù)庫的修改操作要及時(shí)同步到內(nèi)存數(shù)據(jù)庫。[0004]目前物理數(shù)據(jù)庫到內(nèi)存數(shù)據(jù)庫的同步操作基本上使用雙寫方式進(jìn)行,S卩,通過應(yīng)用程序?qū)ξ锢頂?shù)據(jù)庫修改的同時(shí),要寫一份同樣的數(shù)據(jù)在內(nèi)存數(shù)據(jù)庫中,保證物理數(shù)據(jù)庫和內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的一致性。[0005]然而通過雙寫的方式將物理數(shù)據(jù)庫中的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫是同應(yīng)用程序緊密相連的,不同的應(yīng)用程序根據(jù)自己的需求進(jìn)行數(shù)據(jù)的雙寫操作,這樣不僅增加了應(yīng)用程序的復(fù)雜性,導(dǎo)致系統(tǒng)運(yùn)行的緩慢,而且也不利于系統(tǒng)的可擴(kuò)展性。另外,由于雙寫是同應(yīng)用程序緊密相連的,因此當(dāng)通過其它的方式對(duì)物理數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改時(shí),應(yīng)用程序是不能將物理數(shù)據(jù)庫中更新后的數(shù)據(jù)同步到內(nèi)存數(shù)據(jù)庫的,也就不能保證物理數(shù)據(jù)中的數(shù)據(jù)和內(nèi)存數(shù)據(jù)中的數(shù)據(jù)一致,從而導(dǎo)致用戶的查詢結(jié)果不準(zhǔn)確?!?br/>發(fā)明內(nèi)容】[0006]本發(fā)明實(shí)施例提供一種數(shù)據(jù)同步的方法及系統(tǒng),用以在降低數(shù)據(jù)同步操作與應(yīng)用程序的耦合度,提高系統(tǒng)的可擴(kuò)展性的同時(shí),還能夠保證物理數(shù)據(jù)庫中的數(shù)據(jù)和內(nèi)存數(shù)據(jù)中的數(shù)據(jù)一致,從而提高用戶查詢結(jié)果的準(zhǔn)確性。[0007]本發(fā)明實(shí)施例提供一種數(shù)據(jù)同步的方法,包括:[0008]同步服務(wù)器接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù);[0009]所述同步服務(wù)器根據(jù)所述待同步數(shù)據(jù)的屬性信息查詢訂閱信息,得到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端以及目標(biāo)內(nèi)存數(shù)據(jù)庫;[0010]所述同步服務(wù)器將所述待同步數(shù)據(jù)分發(fā)到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端,以使所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端將所述待同步數(shù)據(jù)同步到所述待同步數(shù)據(jù)對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中。[0011]較佳的,還包括:所述物理數(shù)據(jù)庫發(fā)生數(shù)據(jù)更新,將更新后的數(shù)據(jù)發(fā)送給與其連接的數(shù)據(jù)處理器;所述數(shù)據(jù)處理器將接收到的數(shù)據(jù)發(fā)送給所述同步服務(wù)器,所述數(shù)據(jù)處理器與至少一個(gè)物理數(shù)據(jù)庫連接。[0012]較佳的,所述數(shù)據(jù)處理器將接收到的數(shù)據(jù)發(fā)送給所述同步服務(wù)器之前,還包括:所述數(shù)據(jù)處理器根據(jù)需要訂閱的數(shù)據(jù)的屬性信息對(duì)接收到的數(shù)據(jù)進(jìn)行過濾,得到所述待同步數(shù)據(jù)。[0013]較佳的,所述訂閱信息的訂閱過程包括:所述同步客戶端向所述同步服務(wù)器發(fā)送訂閱請(qǐng)求,所述訂閱請(qǐng)求中攜帶所述需要訂閱的數(shù)據(jù)的屬性信息。[0014]較佳的,所述同步服務(wù)器將所述待同步數(shù)據(jù)分發(fā)到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端之后,還包括:所述同步客戶端將所述待同步數(shù)據(jù)轉(zhuǎn)換為鍵值對(duì);所述同步客戶端將轉(zhuǎn)換得到的鍵值對(duì)同步到與其相對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中。[0015]本發(fā)明實(shí)施例提供的一種數(shù)據(jù)同步的系統(tǒng),包括:同步服務(wù)器,同步客戶端,所述同步服務(wù)器包括:[0016]接收模塊,用于接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù);[0017]查詢模塊,用于根據(jù)所述待同步數(shù)據(jù)的屬性信息查詢訂閱信息,得到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端以及目標(biāo)內(nèi)存數(shù)據(jù)庫;分發(fā)模塊,用于將所述待同步數(shù)據(jù)分發(fā)到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端,以使所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端將所述待同步數(shù)據(jù)同步到所述待同步數(shù)據(jù)對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中。[0018]較佳的,還包括:數(shù)據(jù)處理器,[0019]所述物理數(shù)據(jù)庫發(fā)生數(shù)據(jù)更新,將更新后的數(shù)據(jù)發(fā)送給與其連接的所述數(shù)據(jù)處理器;[0020]所述數(shù)據(jù)處理器,用于將接收到的數(shù)據(jù)發(fā)送給所述同步服務(wù)器,所述數(shù)據(jù)處理器與至少一個(gè)物理數(shù)據(jù)庫連接。[0021]較佳的,所述數(shù)據(jù)處理器,還用于:將接收到的數(shù)據(jù)發(fā)送給所述同步服務(wù)器之前,根據(jù)需要訂閱的數(shù)據(jù)的屬性信息對(duì)接收到的數(shù)據(jù)進(jìn)行過濾,得到所述待同步數(shù)據(jù)。[0022]較佳的,所述同步客戶端包括:[0023]訂閱模塊,用于向所述同步服務(wù)器發(fā)送訂閱請(qǐng)求,所述訂閱請(qǐng)求中攜帶所述需要訂閱的數(shù)據(jù)的屬性信息。[0024]較佳的,所述同步客戶端還包括:[0025]同步模塊,用于在接收到所述同步服務(wù)器發(fā)送的所述待同步數(shù)據(jù)之后,將所述待同步數(shù)據(jù)轉(zhuǎn)換為鍵值對(duì),將轉(zhuǎn)換得到的鍵值對(duì)同步到與其相對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中。[0026]本發(fā)明實(shí)施例中,同步服務(wù)器首先接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù),然后根據(jù)待同步數(shù)據(jù)的屬性信息查詢訂閱信息,得到待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端以及目標(biāo)內(nèi)存數(shù)據(jù)庫,最后將待同步數(shù)據(jù)分發(fā)到待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端,以使待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端將待同步數(shù)據(jù)同步到待同步數(shù)據(jù)對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中,可以看出,本發(fā)明實(shí)施例中數(shù)據(jù)同步的方法及系統(tǒng)通過同步服務(wù)器接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù),即可將接收到的待同步數(shù)據(jù)發(fā)送給同步客戶端,并由同步客戶端同步到目標(biāo)內(nèi)存數(shù)據(jù)庫中;不需要利用應(yīng)用程序進(jìn)行數(shù)據(jù)同步,也不需要通過應(yīng)用程序?qū)⑼降臄?shù)據(jù)轉(zhuǎn)換成鍵值對(duì)的格式。因此,本發(fā)明實(shí)施例中的技術(shù)方案,在降低數(shù)據(jù)同步操作與應(yīng)用程序的耦合度,提高系統(tǒng)的可擴(kuò)展性的同時(shí),還能保證物理數(shù)據(jù)庫中的數(shù)據(jù)和內(nèi)存數(shù)據(jù)中的數(shù)據(jù)一致,從而提高用戶查詢結(jié)果的準(zhǔn)確性?!緦@綀D】【附圖說明】[0027]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0028]圖1為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)同步的方法的流程圖;[0029]圖2為本發(fā)明實(shí)施例中同步服務(wù)器接收數(shù)據(jù)處理器發(fā)送的待同步數(shù)據(jù)的流程圖;[0030]圖3為本發(fā)明實(shí)施例中數(shù)據(jù)處理器接收物理數(shù)據(jù)庫發(fā)送的數(shù)據(jù)的流程圖;[0031]圖4為本發(fā)明實(shí)施例中同步客戶端將待同步數(shù)據(jù)同步到對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫的流程圖;[0032]圖5本發(fā)明另一實(shí)施提供的數(shù)據(jù)同步方法的流程圖;[0033]圖6本發(fā)明實(shí)施例提供的數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)示意圖;[0034]圖7本發(fā)明另一實(shí)施例提供的數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)示意圖。【具體實(shí)施方式】[0035]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。[0036]以下對(duì)至少一個(gè)示例性實(shí)施例的描述實(shí)際上僅僅是說明性的,決不作為對(duì)本發(fā)明及其應(yīng)用或使用的任何限制。[0037]本發(fā)明實(shí)施例中同步服務(wù)器與同步客戶端可以設(shè)置在同一設(shè)備中,也可以設(shè)置于不同的設(shè)備中,當(dāng)設(shè)置在不同的設(shè)備中時(shí),同步服務(wù)器與同步客戶端可以通過有線或者無線的方式進(jìn)行通信。所使用的無線通信方式可包括但不限于W1-Fi(WirelessFidelity,無線保真)、藍(lán)牙(Bluetooth)、3G(3rdGenerat1nMobileCommunicat1nTechnology,第三代移動(dòng)通信技術(shù),簡稱3G)或4G(4thGenerat1nMobileCommunicat1nTechnology,第三代移動(dòng)通信技術(shù),簡稱4G)等方式;所使用的有線通信方式可以包括光纖通信技術(shù)。[0038]另外,現(xiàn)有技術(shù)的主從數(shù)據(jù)庫同步,主要是通過從數(shù)據(jù)庫對(duì)主數(shù)據(jù)庫中修改的數(shù)據(jù)進(jìn)行備份,當(dāng)主數(shù)據(jù)庫中有數(shù)據(jù)損壞或者無法修復(fù)的時(shí)候,可以通過從數(shù)據(jù)庫中備份的數(shù)據(jù)對(duì)主數(shù)據(jù)庫進(jìn)行修復(fù)等操作。本發(fā)明實(shí)施例中的數(shù)據(jù)處理器不僅能夠同步一個(gè)物理數(shù)據(jù)庫中的數(shù)據(jù),還能夠通過在數(shù)據(jù)處理器中存儲(chǔ)多個(gè)物理數(shù)據(jù)庫的配置參數(shù),這里,物理數(shù)據(jù)庫的配置參數(shù)可以為:物理數(shù)據(jù)庫的名稱,地址,端口,密碼等,然后根據(jù)存儲(chǔ)的多個(gè)物理數(shù)據(jù)庫的配置參數(shù)中的地址和端口能夠鏈接到多個(gè)物理數(shù)據(jù)庫,從而當(dāng)多個(gè)物理數(shù)據(jù)庫中的數(shù)據(jù)有更新的時(shí)候,能夠接收多個(gè)物理數(shù)據(jù)庫發(fā)生更新后的數(shù)據(jù)。如圖1所示,為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)同步的方法,包括:[0039]S101、同步服務(wù)器接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù)。其中待同步數(shù)據(jù)是物理數(shù)據(jù)庫發(fā)生數(shù)據(jù)更新后將更新后的數(shù)據(jù)發(fā)送給同步服務(wù)器的。[0040]S102、同步服務(wù)器根據(jù)待同步數(shù)據(jù)的屬性信息查詢訂閱信息,得到待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端以及目標(biāo)內(nèi)存數(shù)據(jù)庫。其中,訂閱信息是同步客戶端預(yù)先訂閱的,訂閱信息包括:待同步數(shù)據(jù)的屬性信息與同步客戶端以及目標(biāo)內(nèi)存數(shù)據(jù)庫的對(duì)應(yīng)關(guān)系。[0041]進(jìn)一步地,若同步服務(wù)器根據(jù)待同步數(shù)據(jù)的屬性信息未查詢到訂閱信息或者查詢至IJ的訂閱信息的內(nèi)容為空或者所查詢到的訂閱信息的內(nèi)容為錯(cuò)誤的訂閱信息,則返回到步驟SlOl。[0042]S103、同步服務(wù)器將待同步數(shù)據(jù)分發(fā)到待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端,以使待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端將待同步數(shù)據(jù)同步到待同步數(shù)據(jù)對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中。[0043]上述流程中,所述待同步數(shù)據(jù)的屬性信息可以為表名稱或表標(biāo)識(shí),也可以是數(shù)據(jù)的類型、字段名稱等,例如,待同步數(shù)據(jù)的屬性信息可以是微信賬號(hào)信息表的標(biāo)識(shí)。[0044]上述流程中,所述訂閱信息是同步服務(wù)器根據(jù)同步客戶端發(fā)起的訂閱請(qǐng)求得到的。訂閱信息中包括:待同步數(shù)據(jù)的屬性信息與同步客戶端以及目標(biāo)內(nèi)存數(shù)據(jù)庫的對(duì)應(yīng)關(guān)系,比如,訂閱信息可包括:表標(biāo)識(shí)與同步客戶端的標(biāo)識(shí)信息以及內(nèi)存數(shù)據(jù)庫的標(biāo)識(shí)信息的對(duì)應(yīng)關(guān)系。其中,同步客戶端的標(biāo)識(shí)信息可以為同步客戶端的參數(shù)配置信息,例如同步客戶端自身的序列號(hào)等;目標(biāo)內(nèi)存數(shù)據(jù)的標(biāo)識(shí)信息可以目標(biāo)內(nèi)存數(shù)據(jù)庫的配置信息,例如內(nèi)存數(shù)據(jù)庫的標(biāo)識(shí)、內(nèi)存數(shù)據(jù)庫的地址以及內(nèi)存數(shù)據(jù)庫的端口等可唯一標(biāo)識(shí)內(nèi)存數(shù)據(jù)庫的信肩、O[0045]舉例來說,以下代碼示出了一種訂閱信息的內(nèi)容:[0046]<!—關(guān)注的表信息,至少為一個(gè)表,不能為空--><tableset>〈tablenameMi^#賬號(hào)信息表</tablename></tableset>〈!一目標(biāo)內(nèi)存數(shù)據(jù)庫的配置信息,必填一><redis>〈address〉127.0.0.1</address><porl>6379</port></red.1s><!—同步客戶端,至少為一個(gè)同步客戶端,不能為空—><synclient><serialnuinber>synclient_l11</serialnumber></synclient>[0047]上述代碼所示的訂閱信息中,表名稱為:微信賬號(hào)信息表,對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫的地址為127.0.0.1,端口為:6379,對(duì)應(yīng)的同步客戶端的序列號(hào)為:synclient_lll。根據(jù)該訂閱信息,當(dāng)物理數(shù)據(jù)庫中的微信賬號(hào)信息表中的數(shù)據(jù)更新時(shí),需要將該微信賬號(hào)信息表中更新的數(shù)據(jù)通過序列號(hào)為Synclient_lll的客戶端同步到地址為127.0.0.1、端口為6379的目標(biāo)內(nèi)存數(shù)據(jù)庫中。[0048]為了增加同步客戶端和同步服務(wù)器的靈活性,上述的訂閱信息可以采取XML(ExtensibleMarkupLanguage,擴(kuò)展標(biāo)記語言)格式的文件進(jìn)行存儲(chǔ),當(dāng)然也可以采用其它的文件格式進(jìn)行存儲(chǔ),例如TXT(Textfile,文本文件)。[0049]其中,上述訂閱信息的訂閱過程可以包括:同步客戶端向同步服務(wù)器發(fā)送訂閱請(qǐng)求,訂閱請(qǐng)求中攜帶所述需要訂閱的數(shù)據(jù)的屬性信息,同步服務(wù)器根據(jù)訂閱請(qǐng)求中攜帶的需要訂閱的數(shù)據(jù)的屬性信息以及同步客戶端的標(biāo)識(shí)信息生成訂閱信息。[0050]進(jìn)一步地,同步客戶端接收到同步服務(wù)器發(fā)送的所述待同步數(shù)據(jù)之后,可將待同步數(shù)據(jù)轉(zhuǎn)換為鍵值對(duì)(Key-Value);將轉(zhuǎn)換得到的鍵值對(duì)同步到目標(biāo)內(nèi)存數(shù)據(jù)庫中。[0051]本發(fā)明實(shí)施例基于物理數(shù)據(jù)庫中主數(shù)據(jù)庫/從數(shù)據(jù)庫的架構(gòu)實(shí)現(xiàn)數(shù)據(jù)同步,其中,物理數(shù)據(jù)庫可基于數(shù)據(jù)庫系統(tǒng)內(nèi)置的觸發(fā)機(jī)制,當(dāng)有數(shù)據(jù)更新時(shí),將發(fā)生更新的數(shù)據(jù)作為發(fā)送給數(shù)據(jù)處理器,數(shù)據(jù)處理器可以根據(jù)需要訂閱的數(shù)據(jù)局的屬性信息對(duì)接收到的數(shù)據(jù)進(jìn)行過濾后,得到待同步數(shù)據(jù),然后由數(shù)據(jù)處理器待同步數(shù)據(jù)發(fā)送給同步服務(wù)器。下面結(jié)合圖2、圖3分別描述上述流程。[0052]如圖2所示,為同步服務(wù)器接收數(shù)據(jù)處理器發(fā)送的待同步數(shù)據(jù)的具體過程,該過程可包括:[0053]S201、同步服務(wù)器接收數(shù)據(jù)處理器發(fā)送的待同步數(shù)據(jù)。[0054]S202、同步服務(wù)器將接收到的待同步數(shù)據(jù)進(jìn)行解析,得到待同步數(shù)據(jù)的屬性信息;同步服務(wù)器得到待同步數(shù)據(jù)的屬性信息后,返回到步驟S201。[0055]進(jìn)一步地,同步服務(wù)器得到待同步數(shù)據(jù)的屬性信息后,可以通過消息隊(duì)列將得到的待同步數(shù)據(jù)的屬性信息進(jìn)行存儲(chǔ)。[0056]進(jìn)一步地,為了擴(kuò)大同步數(shù)據(jù)的范圍,數(shù)據(jù)處理器可以接收多個(gè)物理數(shù)據(jù)庫發(fā)送的數(shù)據(jù)。[0057]其中,數(shù)據(jù)處理器中根據(jù)需要訂閱的數(shù)據(jù)的屬性信息對(duì)接收到的數(shù)據(jù)進(jìn)行過濾,可以減少同步服務(wù)器的查詢時(shí)間以及節(jié)省同步服務(wù)器的存儲(chǔ)空間,例如,當(dāng)物理數(shù)據(jù)庫中有五個(gè)表中的數(shù)據(jù)發(fā)生了更新,五個(gè)表的表標(biāo)識(shí)分別為:表_1、表_2、表_3、表_4、表_5,而需要訂閱的數(shù)據(jù)的屬性信息為表標(biāo)識(shí):表_1和表_2,則數(shù)據(jù)處理器接收物理數(shù)據(jù)庫發(fā)送的更新后的5個(gè)表的數(shù)據(jù)后,根據(jù)需要訂閱的表的表標(biāo)識(shí):表_1和表_2,保留表_1和表_2中的數(shù)據(jù),而丟棄表_3、表_4和表_5中的數(shù)據(jù),然后將保留的表_1和表_2中的數(shù)據(jù)發(fā)送給同步服務(wù)器。[0058]為了便于數(shù)據(jù)處理器根據(jù)需要訂閱的數(shù)據(jù)的屬性信息對(duì)接收的數(shù)據(jù)進(jìn)行過濾,從而能夠提高數(shù)據(jù)同步的速度。數(shù)據(jù)處理器還可以對(duì)接收到的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,例如,若接收的數(shù)據(jù)為數(shù)據(jù)包或者字節(jié)流,則可以將接收到的數(shù)據(jù)包或者字節(jié)流轉(zhuǎn)換成數(shù)據(jù)表的格式。[0059]如圖3所示,為數(shù)據(jù)處理器接收物理數(shù)據(jù)庫發(fā)送的數(shù)據(jù)的具體過程,該過程可包括:[0060]S301、數(shù)據(jù)處理器接收物理數(shù)據(jù)庫發(fā)生數(shù)據(jù)更新后發(fā)送的更新后的數(shù)據(jù)。[0061]S302、數(shù)據(jù)處理器將接收到的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換。[0062]S303、數(shù)據(jù)處理器根據(jù)需要訂閱的數(shù)據(jù)的屬性信息對(duì)格式轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行過濾,得到待同步數(shù)據(jù);數(shù)據(jù)處理器得到待同步數(shù)據(jù)后,返回到步驟S301。[0063]如圖4所示,為本發(fā)明實(shí)施例中同步客戶端將接收的待同步數(shù)據(jù)同步到目標(biāo)內(nèi)存數(shù)據(jù)庫的具體過程,該過程可包括:[0064]S401、同步客戶端接收同步服務(wù)器根據(jù)訂閱請(qǐng)求中所攜帶的需要訂閱的數(shù)據(jù)的屬性信息所發(fā)送的待同步數(shù)據(jù)。[0065]S402、同步客戶端將接收的待同步數(shù)據(jù)轉(zhuǎn)換為鍵值對(duì)。[0066]S403、同步客戶端將轉(zhuǎn)換得到的鍵值對(duì)同步到目標(biāo)內(nèi)存數(shù)據(jù)庫中。同步客戶端將轉(zhuǎn)換得到的鍵值對(duì)同步到目標(biāo)內(nèi)存數(shù)據(jù)庫后,返回到步驟S401。[0067]上述內(nèi)容對(duì)本發(fā)明實(shí)施例提供的數(shù)據(jù)同步的方法中的幾個(gè)流程進(jìn)行了詳細(xì)的介紹,通過本發(fā)明實(shí)施例提供的數(shù)據(jù)同步的方法,由同步服務(wù)器接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù),然后將接收到的待同步數(shù)據(jù)發(fā)送給同步客戶端,并由同步客戶端同步到目標(biāo)內(nèi)存數(shù)據(jù)庫中;可以看出,不需要利用應(yīng)用程序進(jìn)行數(shù)據(jù)同步,也不需要通過應(yīng)用程序?qū)⑼降臄?shù)據(jù)轉(zhuǎn)換成鍵值對(duì)的格式。因此,在降低數(shù)據(jù)同步操作與應(yīng)用程序的耦合度,提高系統(tǒng)的可擴(kuò)展性的同時(shí),還能保證物理數(shù)據(jù)庫中的數(shù)據(jù)和內(nèi)存數(shù)據(jù)中的數(shù)據(jù)一致,提高用戶查詢結(jié)果的準(zhǔn)確性。另外,本發(fā)明實(shí)施例中的數(shù)據(jù)處理器,能接收多個(gè)物理數(shù)據(jù)庫發(fā)生更新后所發(fā)送的更新后的數(shù)據(jù),從而還能夠擴(kuò)大同步數(shù)據(jù)的范圍。[0068]下面通過本發(fā)明的一個(gè)優(yōu)選實(shí)施例,對(duì)本發(fā)明實(shí)施提供的數(shù)據(jù)同步的方法進(jìn)行詳細(xì)的說明。[0069]假設(shè)物理數(shù)據(jù)庫中所存儲(chǔ)的三個(gè)表在更新前的數(shù)據(jù)信息如下:[0070]學(xué)生成績表[0071]【權(quán)利要求】1.一種數(shù)據(jù)同步的方法,其特征在于,包括:同步服務(wù)器接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù);所述同步服務(wù)器根據(jù)所述待同步數(shù)據(jù)的屬性信息查詢訂閱信息,得到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端以及目標(biāo)內(nèi)存數(shù)據(jù)庫;所述同步服務(wù)器將所述待同步數(shù)據(jù)分發(fā)到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端,以使所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端將所述待同步數(shù)據(jù)同步到所述待同步數(shù)據(jù)對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中。2.如權(quán)利要求1所述的方法,其特征在于,所述同步服務(wù)器接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù),具體包括:所述物理數(shù)據(jù)庫發(fā)生數(shù)據(jù)更新,將更新后的數(shù)據(jù)發(fā)送給與其連接的數(shù)據(jù)處理器;所述數(shù)據(jù)處理器將接收到的數(shù)據(jù)發(fā)送給所述同步服務(wù)器,所述數(shù)據(jù)處理器與至少一個(gè)物理數(shù)據(jù)庫連接。3.如權(quán)利要求2所述的方法,其特征在于,所述數(shù)據(jù)處理器將接收到的數(shù)據(jù)發(fā)送給所述同步服務(wù)器之前,還包括:所述數(shù)據(jù)處理器根據(jù)需要訂閱的數(shù)據(jù)的屬性信息對(duì)接收到的數(shù)據(jù)進(jìn)行過濾,得到所述待同步數(shù)據(jù)。4.如權(quán)利要求1所述的方法,其特征在于,所述訂閱信息的訂閱過程包括:所述同步客戶端向所述同步服務(wù)器發(fā)送訂閱請(qǐng)求,所述訂閱請(qǐng)求中攜帶所述需要訂閱的數(shù)據(jù)的屬性信息。5.如權(quán)利要求1所述的方法,其特征在于,所述同步服務(wù)器將所述待同步數(shù)據(jù)分發(fā)到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端之后,還包括:所述同步客戶端將所述待同步數(shù)據(jù)轉(zhuǎn)換為鍵值對(duì);所述同步客戶端將轉(zhuǎn)換得到的鍵值對(duì)同步到與其相對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中。6.一種數(shù)據(jù)同步的系統(tǒng),其特征在于,包括:同步服務(wù)器,同步客戶端,所述同步服務(wù)器包括:接收模塊,用于接收物理數(shù)據(jù)庫發(fā)送的待同步數(shù)據(jù);查詢模塊,用于根據(jù)所述待同步數(shù)據(jù)的屬性信息查詢訂閱信息,得到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端以及目標(biāo)內(nèi)存數(shù)據(jù)庫;分發(fā)模塊,用于將所述待同步數(shù)據(jù)分發(fā)到所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端,以使所述待同步數(shù)據(jù)對(duì)應(yīng)的同步客戶端將所述待同步數(shù)據(jù)同步到所述待同步數(shù)據(jù)對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中。7.如權(quán)利要求6所述的系統(tǒng),其特征在于,還包括:數(shù)據(jù)處理器,所述物理數(shù)據(jù)庫發(fā)生數(shù)據(jù)更新,將更新后的數(shù)據(jù)發(fā)送給與其連接的所述數(shù)據(jù)處理器;所述數(shù)據(jù)處理器,用于將接收到的數(shù)據(jù)發(fā)送給所述同步服務(wù)器,所述數(shù)據(jù)處理器與至少一個(gè)物理數(shù)據(jù)庫連接。8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述數(shù)據(jù)處理器,還用于:將接收到的數(shù)據(jù)發(fā)送給所述同步服務(wù)器之前,根據(jù)需要訂閱的數(shù)據(jù)的屬性信息對(duì)接收到的數(shù)據(jù)進(jìn)行過濾,得到所述待同步數(shù)據(jù)。9.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述同步客戶端包括:訂閱模塊,用于向所述同步服務(wù)器發(fā)送訂閱請(qǐng)求,所述訂閱請(qǐng)求中攜帶所述需要訂閱的數(shù)據(jù)的屬性信息。10.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述同步客戶端包括:同步模塊,用于在接收到所述同步服務(wù)器發(fā)送的所述待同步數(shù)據(jù)之后,將所述待同步數(shù)據(jù)轉(zhuǎn)換為鍵值對(duì),將轉(zhuǎn)換得到的鍵值對(duì)同步到與其相對(duì)應(yīng)的目標(biāo)內(nèi)存數(shù)據(jù)庫中?!疚臋n編號(hào)】H04L29/08GK104184822SQ201410438454【公開日】2014年12月3日申請(qǐng)日期:2014年8月29日優(yōu)先權(quán)日:2014年8月29日【發(fā)明者】李濤申請(qǐng)人:海視云(北京)科技有限公司