本發(fā)明涉及大數(shù)據(jù),尤其涉及一種數(shù)據(jù)處理方法和裝置。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,互聯(lián)網(wǎng)業(yè)務(wù)也迅猛增長(zhǎng),對(duì)應(yīng)產(chǎn)生的大量業(yè)務(wù)數(shù)據(jù)如何進(jìn)行緩存處理,以應(yīng)對(duì)后續(xù)的數(shù)據(jù)查詢操作是當(dāng)前亟需解決的問(wèn)題。相關(guān)技術(shù)中主要通過(guò)遠(yuǎn)程緩存和本地緩存相結(jié)合所構(gòu)成的二級(jí)緩存機(jī)制對(duì)進(jìn)行數(shù)據(jù)緩存操作,但當(dāng)同時(shí)使用遠(yuǎn)程緩存和本地緩存時(shí),存在緩存維護(hù)復(fù)雜程度高、本地緩存失效時(shí)會(huì)導(dǎo)致業(yè)務(wù)不可用的情形。另一方面,相關(guān)技術(shù)中一般通過(guò)引入消息中間件執(zhí)行遠(yuǎn)程緩存和本地緩存之間的信息通知,導(dǎo)致需要對(duì)系統(tǒng)原有架構(gòu)進(jìn)行調(diào)整,增加了系統(tǒng)架構(gòu)的復(fù)雜性。同時(shí),現(xiàn)有的緩存機(jī)制常采用key-value(鍵值對(duì))的存儲(chǔ)結(jié)構(gòu),當(dāng)面對(duì)數(shù)以百萬(wàn)計(jì)的數(shù)據(jù)緩存場(chǎng)景時(shí),大量的key降低了緩存性能、影響了數(shù)據(jù)緩存和查詢效率,導(dǎo)致數(shù)據(jù)處理效率低、用戶體驗(yàn)差。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法和裝置,能夠先通過(guò)緩存中間件對(duì)待緩存數(shù)據(jù)進(jìn)行分片存儲(chǔ),再利用本地緩存將緩存數(shù)據(jù)設(shè)置為常駐內(nèi)存對(duì)象,避免了本地緩存失效時(shí)業(yè)務(wù)不可用的情形,同時(shí),通過(guò)分布式配置中心執(zhí)行緩存中間件和本地緩存之間的消息通知,能夠適用于高并發(fā)的數(shù)據(jù)緩存場(chǎng)景,提高了數(shù)據(jù)處理效率,保障了緩存性能,拓展了數(shù)據(jù)處理的應(yīng)用場(chǎng)景,提升了用戶體驗(yàn)。
2、為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種數(shù)據(jù)處理方法,包括:
3、接收多個(gè)待緩存數(shù)據(jù),從分布式配置中心中獲取當(dāng)前分片數(shù)量;其中,待緩存數(shù)據(jù)指示了數(shù)據(jù)編號(hào);
4、根據(jù)當(dāng)前分片數(shù)量和數(shù)據(jù)編號(hào)對(duì)多個(gè)待緩存數(shù)據(jù)進(jìn)行分片處理,并將分片處理后的多個(gè)待緩存數(shù)據(jù)緩存至緩存中間件中;
5、在緩存中間件緩存成功后,調(diào)用分布式配置中心的接口向本地緩存發(fā)送緩存通知,以將緩存中間件中緩存的數(shù)據(jù)同步緩存至本地緩存中;其中,本地緩存中的緩存數(shù)據(jù)為常駐內(nèi)存對(duì)象。
6、進(jìn)一步地,根據(jù)當(dāng)前分片數(shù)量和數(shù)據(jù)編號(hào)對(duì)多個(gè)待緩存數(shù)據(jù)進(jìn)行分片處理的步驟,包括:
7、以當(dāng)前分片數(shù)量對(duì)應(yīng)的數(shù)值為模,對(duì)數(shù)據(jù)編號(hào)進(jìn)行取模運(yùn)算;
8、根據(jù)取模運(yùn)算結(jié)果確定每個(gè)待緩存數(shù)據(jù)對(duì)應(yīng)的分片編號(hào),以實(shí)現(xiàn)對(duì)多個(gè)待緩存數(shù)據(jù)的分片處理。
9、進(jìn)一步地,待緩存數(shù)據(jù)還指示了數(shù)據(jù)類型;將分片處理后的多個(gè)待緩存數(shù)據(jù)緩存至緩存中間件中的步驟,包括:
10、以鍵值對(duì)的形式將分片處理后的多個(gè)待緩存數(shù)據(jù)緩存至緩存中間件中;其中,鍵值對(duì)中的鍵包括數(shù)據(jù)類型和分片編號(hào),鍵值對(duì)中的鍵值包括相應(yīng)分片中存儲(chǔ)的待緩存數(shù)據(jù)。
11、進(jìn)一步地,在從分布式配置中心中獲取當(dāng)前分片數(shù)量的步驟之后,方法還包括:
12、根據(jù)當(dāng)前分片數(shù)量、當(dāng)前分片對(duì)應(yīng)的剩余緩存空間以及多個(gè)待緩存數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)量,判斷是否需要對(duì)當(dāng)前分片數(shù)量進(jìn)行擴(kuò)容處理;
13、若是,根據(jù)剩余緩存空間和多個(gè)待緩存數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)量確定擴(kuò)容處理后的實(shí)際分片數(shù)量,并根據(jù)實(shí)際分片數(shù)量和數(shù)據(jù)編號(hào)對(duì)多個(gè)待緩存數(shù)據(jù)進(jìn)行分片處理,并將分片處理后的多個(gè)待緩存數(shù)據(jù)緩存至緩存中間件中。
14、進(jìn)一步地,方法還包括:
15、以擴(kuò)容處理后實(shí)際分片數(shù)量對(duì)應(yīng)的數(shù)值為模,對(duì)緩存中間件中已緩存數(shù)據(jù)的數(shù)據(jù)編號(hào)進(jìn)行取模運(yùn)算,根據(jù)取模運(yùn)算結(jié)果確定已緩存數(shù)據(jù)對(duì)應(yīng)的實(shí)際分片編號(hào),以對(duì)已緩存數(shù)據(jù)進(jìn)行更新;
16、并將更新結(jié)果發(fā)送至本地緩存中。
17、進(jìn)一步地,接收多個(gè)待緩存數(shù)據(jù),從分布式配置中心中獲取當(dāng)前分片數(shù)量的步驟,還包括:
18、批量接收多個(gè)待緩存數(shù)據(jù),對(duì)多個(gè)待緩存數(shù)據(jù)進(jìn)行校驗(yàn)處理;
19、在校驗(yàn)通過(guò)的情況下,從分布式配置中心獲取當(dāng)前分片數(shù)量。
20、進(jìn)一步地,方法還包括:
21、接收目標(biāo)數(shù)據(jù)查詢請(qǐng)求,根據(jù)目標(biāo)數(shù)據(jù)查詢請(qǐng)求指示的目標(biāo)數(shù)據(jù)的數(shù)據(jù)編號(hào),確定目標(biāo)數(shù)據(jù)對(duì)應(yīng)的分片編號(hào);
22、根據(jù)數(shù)據(jù)編號(hào)和分片編號(hào)查詢本地緩存,并將查詢結(jié)果反饋至目標(biāo)數(shù)據(jù)查詢請(qǐng)求的請(qǐng)求方。
23、根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,提供了一種數(shù)據(jù)處理裝置,包括:
24、接收模塊,用于接收多個(gè)待緩存數(shù)據(jù),從分布式配置中心中獲取當(dāng)前分片數(shù)量;其中,待緩存數(shù)據(jù)指示了數(shù)據(jù)編號(hào);
25、分片模塊,用于根據(jù)當(dāng)前分片數(shù)量和數(shù)據(jù)編號(hào)對(duì)多個(gè)待緩存數(shù)據(jù)進(jìn)行分片處理,并將分片處理后的多個(gè)待緩存數(shù)據(jù)緩存至緩存中間件中;
26、數(shù)據(jù)處理模塊,用于在緩存中間件緩存成功后,調(diào)用分布式配置中心的接口向本地緩存發(fā)送緩存通知,以將緩存中間件中緩存的數(shù)據(jù)同步緩存至本地緩存中;其中,本地緩存中的緩存數(shù)據(jù)為常駐內(nèi)存對(duì)象。
27、根據(jù)本發(fā)明實(shí)施例的又一個(gè)方面,提供了一種數(shù)據(jù)處理的電子設(shè)備,包括:
28、一個(gè)或多個(gè)處理器;
29、存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,
30、當(dāng)一個(gè)或多個(gè)程序被一個(gè)或多個(gè)處理器執(zhí)行,使得一個(gè)或多個(gè)處理器實(shí)現(xiàn)如上述任一種數(shù)據(jù)處理方法。
31、根據(jù)本發(fā)明實(shí)施例的再一個(gè)方面,提供了一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一種數(shù)據(jù)處理方法。
32、上述發(fā)明中的一個(gè)實(shí)施例具有如下優(yōu)點(diǎn)或有益效果:因?yàn)椴捎媒邮斩鄠€(gè)待緩存數(shù)據(jù),從分布式配置中心中獲取當(dāng)前分片數(shù)量;其中,待緩存數(shù)據(jù)指示了數(shù)據(jù)編號(hào);根據(jù)當(dāng)前分片數(shù)量和數(shù)據(jù)編號(hào)對(duì)多個(gè)待緩存數(shù)據(jù)進(jìn)行分片處理,并將分片處理后的多個(gè)待緩存數(shù)據(jù)緩存至緩存中間件中;在緩存中間件緩存成功后,調(diào)用分布式配置中心的接口向本地緩存發(fā)送緩存通知,以將緩存中間件中緩存的數(shù)據(jù)同步緩存至本地緩存中;其中,本地緩存中的緩存數(shù)據(jù)為常駐內(nèi)存對(duì)象的技術(shù)手段,所以克服了相關(guān)技術(shù)中存在的緩存維護(hù)復(fù)雜程度高、本地緩存失效時(shí)會(huì)導(dǎo)致業(yè)務(wù)不可用、系統(tǒng)架構(gòu)的復(fù)雜性高、數(shù)據(jù)處理效率低、用戶體驗(yàn)差、且難以適用于高并發(fā)的數(shù)據(jù)緩存場(chǎng)景的技術(shù)問(wèn)題,進(jìn)而達(dá)到能夠先通過(guò)緩存中間件對(duì)待緩存數(shù)據(jù)進(jìn)行分片存儲(chǔ),再利用本地緩存將緩存數(shù)據(jù)設(shè)置為常駐內(nèi)存對(duì)象,避免了本地緩存失效時(shí)業(yè)務(wù)不可用的情形,同時(shí),通過(guò)分布式配置中心進(jìn)行緩存中間件和本地緩存之間的消息通知,能夠適用于高并發(fā)的數(shù)據(jù)緩存場(chǎng)景,提高了數(shù)據(jù)處理效率,保障了緩存性能,拓展了數(shù)據(jù)處理的應(yīng)用場(chǎng)景,提升了用戶體驗(yàn)的技術(shù)效果。
33、上述的非慣用的可選方式所具有的進(jìn)一步效果將在下文中結(jié)合具體實(shí)施方式加以說(shuō)明。
1.一種數(shù)據(jù)處理方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述根據(jù)所述當(dāng)前分片數(shù)量和所述數(shù)據(jù)編號(hào)對(duì)所述多個(gè)待緩存數(shù)據(jù)進(jìn)行分片處理的步驟,包括:
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理方法,其特征在于,所述待緩存數(shù)據(jù)還指示了數(shù)據(jù)類型;所述將分片處理后的多個(gè)待緩存數(shù)據(jù)緩存至緩存中間件中的步驟,包括:
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,在所述從分布式配置中心中獲取當(dāng)前分片數(shù)量的步驟之后,所述方法還包括:
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述接收多個(gè)待緩存數(shù)據(jù),從分布式配置中心中獲取當(dāng)前分片數(shù)量的步驟,還包括:
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述方法還包括:
8.一種數(shù)據(jù)處理裝置,其特征在于,包括:
9.一種數(shù)據(jù)處理的電子設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-7中任一所述的方法。