本發(fā)明實(shí)施例涉及數(shù)據(jù)處理,尤其涉及一種數(shù)據(jù)緩存方法、裝置、設(shè)備和存儲介質(zhì)。
背景技術(shù):
1、在微服務(wù)系統(tǒng)中,為提高從數(shù)據(jù)庫中讀取數(shù)據(jù)的性能,通常會將數(shù)據(jù)緩存在分布式緩存redis集群中,再提供微服務(wù)查詢使用。redis集群可以輕松保存億級的數(shù)據(jù),并提供高性能查詢服務(wù)。由于redis集群與微服務(wù)是隔離的,在超高并發(fā)(千萬級qps)和低延遲(5毫秒以內(nèi))的場景下,微服務(wù)先從redis集群獲取數(shù)據(jù),再做相關(guān)業(yè)務(wù)邏輯處理,往往導(dǎo)致超時,而且?guī)沓杀兜臋C(jī)器資源開銷。
2、現(xiàn)有技術(shù)中,可以將數(shù)據(jù)庫中的批量數(shù)據(jù)緩存在微服務(wù)的本地內(nèi)存中,以提升微服務(wù)的數(shù)據(jù)查詢性能。
3、在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在以下技術(shù)問題:
4、微服務(wù)的本地內(nèi)存資源非常寶貴,能保存的數(shù)據(jù)非常有限,無法批量緩存數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種數(shù)據(jù)緩存方法、裝置、設(shè)備和存儲介質(zhì),以實(shí)現(xiàn)對待緩存數(shù)據(jù)的批量緩存,同時提升微服務(wù)的性能。
2、第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)緩存方法,包括:
3、根據(jù)當(dāng)前微服務(wù)中機(jī)器節(jié)點(diǎn)的數(shù)量以及一致性哈希算法中虛擬節(jié)點(diǎn)的數(shù)量構(gòu)建哈希環(huán),其中,所述哈希環(huán)中各位置對應(yīng)所述當(dāng)前微服務(wù)中各機(jī)器節(jié)點(diǎn)的各虛擬節(jié)點(diǎn);
4、接收待緩存數(shù)據(jù),基于所述一致性哈希算法確定各所述待緩存數(shù)據(jù)對應(yīng)的哈希值,基于各所述待緩存數(shù)據(jù)對應(yīng)的哈希值對所述待緩存數(shù)據(jù)進(jìn)行數(shù)據(jù)分割;
5、基于分割后的各組待緩存數(shù)據(jù)對應(yīng)的哈希值在所述哈希環(huán)中確定所述當(dāng)前微服務(wù)中存儲各組待緩存數(shù)據(jù)的目標(biāo)機(jī)器節(jié)點(diǎn),并將各組待緩存數(shù)據(jù)緩存至所述目標(biāo)機(jī)器節(jié)點(diǎn)。
6、第二方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)緩存裝置,包括:
7、構(gòu)建模塊,用于根據(jù)當(dāng)前微服務(wù)中機(jī)器節(jié)點(diǎn)的數(shù)量以及一致性哈希算法中虛擬節(jié)點(diǎn)的數(shù)量構(gòu)建哈希環(huán),其中,所述哈希環(huán)中各位置對應(yīng)所述當(dāng)前微服務(wù)中各機(jī)器節(jié)點(diǎn)的各虛擬節(jié)點(diǎn);
8、分割模塊,用于接收待緩存數(shù)據(jù),基于所述一致性哈希算法確定各所述待緩存數(shù)據(jù)對應(yīng)的哈希值,基于各所述待緩存數(shù)據(jù)對應(yīng)的哈希值對所述待緩存數(shù)據(jù)進(jìn)行數(shù)據(jù)分割;
9、緩存模塊,用于基于分割后的各組待緩存數(shù)據(jù)對應(yīng)的哈希值在所述哈希環(huán)中確定所述當(dāng)前微服務(wù)中存儲各組待緩存數(shù)據(jù)的目標(biāo)機(jī)器節(jié)點(diǎn),并將各組待緩存數(shù)據(jù)緩存至所述目標(biāo)機(jī)器節(jié)點(diǎn)。
10、第三方面,本發(fā)明實(shí)施例還提供一種電子設(shè)備,所述電子設(shè)備包括:
11、一個或多個處理器;
12、存儲裝置,用于存儲一個或多個程序,
13、當(dāng)所述一個或多個程序被所述一個或多個處理器執(zhí)行,使得所述一個或多個處理器實(shí)現(xiàn)如第一方面中任一所述的數(shù)據(jù)緩存方法。
14、第四方面,本發(fā)明實(shí)施例還提供了一種包含計算機(jī)可執(zhí)行指令的存儲介質(zhì),其特征在于,所述計算機(jī)可執(zhí)行指令在由計算機(jī)處理器執(zhí)行時用于執(zhí)行如第一方面中任一所述的數(shù)據(jù)緩存方法。
15、上述發(fā)明中的實(shí)施例具有如下優(yōu)點(diǎn)或有益效果:
16、本發(fā)明實(shí)施例提供一種數(shù)據(jù)緩存方法,該方法包括:根據(jù)當(dāng)前微服務(wù)中機(jī)器節(jié)點(diǎn)的數(shù)量以及一致性哈希算法中虛擬節(jié)點(diǎn)的數(shù)量構(gòu)建哈希環(huán),其中,所述哈希環(huán)中各位置對應(yīng)所述當(dāng)前微服務(wù)中各機(jī)器節(jié)點(diǎn)的各虛擬節(jié)點(diǎn);接收待緩存數(shù)據(jù),基于所述一致性哈希算法確定各所述待緩存數(shù)據(jù)對應(yīng)的哈希值,基于各所述待緩存數(shù)據(jù)對應(yīng)的哈希值對所述待緩存數(shù)據(jù)進(jìn)行數(shù)據(jù)分割;基于分割后的各組待緩存數(shù)據(jù)對應(yīng)的哈希值在所述哈希環(huán)中確定所述當(dāng)前微服務(wù)中存儲各組待緩存數(shù)據(jù)的目標(biāo)機(jī)器節(jié)點(diǎn),并將各組待緩存數(shù)據(jù)緩存至所述目標(biāo)機(jī)器節(jié)點(diǎn)。上述技術(shù)方案,首先,可以根據(jù)當(dāng)前微服務(wù)中機(jī)器節(jié)點(diǎn)的數(shù)量以及一致性哈希算法中虛擬節(jié)點(diǎn)的數(shù)量確定哈希環(huán)的位置數(shù),其次,在哈希環(huán)上確定當(dāng)前微服務(wù)中各機(jī)器節(jié)點(diǎn)的各虛擬節(jié)點(diǎn)對應(yīng)的位置,實(shí)現(xiàn)構(gòu)建哈希環(huán),接收到待緩存數(shù)據(jù)后,可以確定各待緩存數(shù)據(jù)對應(yīng)的哈希值,并根據(jù)各待緩存數(shù)據(jù)對應(yīng)的哈希值將待緩存數(shù)據(jù)分割為至少一組待緩存數(shù)據(jù),實(shí)現(xiàn)對待緩存數(shù)據(jù)的分割,對于分割后的各組待緩存數(shù)據(jù),根據(jù)當(dāng)前組待緩存數(shù)據(jù)對應(yīng)的哈希值在哈希環(huán)中確定對應(yīng)的位置,并將該位置對應(yīng)的虛擬節(jié)點(diǎn)所屬的機(jī)器節(jié)點(diǎn)確定為緩存當(dāng)前組待緩存數(shù)據(jù)的目標(biāo)機(jī)器節(jié)點(diǎn),實(shí)現(xiàn)確定各組待緩存數(shù)據(jù)對應(yīng)的目標(biāo)機(jī)器節(jié)點(diǎn),進(jìn)而可以將各組待緩存數(shù)據(jù)緩存至對應(yīng)的目標(biāo)機(jī)器節(jié)點(diǎn),實(shí)現(xiàn)對待緩存數(shù)據(jù)的批量緩存。當(dāng)然,緩存至當(dāng)前微服務(wù)的機(jī)器節(jié)點(diǎn)的待緩存數(shù)據(jù)使得當(dāng)前微服務(wù)可以直接從本地內(nèi)存獲取數(shù)據(jù),提升了當(dāng)前微服務(wù)的性能。
1.一種數(shù)據(jù)緩存方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)緩存方法,其特征在于,根據(jù)當(dāng)前微服務(wù)中機(jī)器節(jié)點(diǎn)的數(shù)量以及一致性哈希算法中虛擬節(jié)點(diǎn)的數(shù)量構(gòu)建哈希環(huán),包括:
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)緩存方法,其特征在于,確定所述當(dāng)前微服務(wù)中各所述機(jī)器節(jié)點(diǎn)的各虛擬節(jié)點(diǎn)的哈希值,包括:
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)緩存方法,其特征在于,接收待緩存數(shù)據(jù),包括:
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)緩存方法,其特征在于,基于所述一致性哈希算法確定各所述待緩存數(shù)據(jù)對應(yīng)的哈希值,基于各所述待緩存數(shù)據(jù)對應(yīng)的哈希值對所述待緩存數(shù)據(jù)進(jìn)行數(shù)據(jù)分割,包括:
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)緩存方法,其特征在于,基于分割后的各組待緩存數(shù)據(jù)對應(yīng)的哈希值在所述哈希環(huán)中確定所述當(dāng)前微服務(wù)中存儲各組待緩存數(shù)據(jù)的目標(biāo)機(jī)器節(jié)點(diǎn),包括:
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)緩存方法,其特征在于,根據(jù)所述目標(biāo)位置對應(yīng)的虛擬節(jié)點(diǎn)確定所述當(dāng)前微服務(wù)中存儲各組待緩存數(shù)據(jù)的目標(biāo)機(jī)器節(jié)點(diǎn),包括:
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)緩存方法,其特征在于,根據(jù)所述目標(biāo)位置對應(yīng)的虛擬節(jié)點(diǎn)在所述哈希環(huán)上確定目標(biāo)虛擬節(jié)點(diǎn),包括:
9.根據(jù)權(quán)利要求1所述的數(shù)據(jù)緩存方法,其特征在于,在基于各所述待緩存數(shù)據(jù)對應(yīng)的哈希值對所述待緩存數(shù)據(jù)進(jìn)行數(shù)據(jù)分割之后,還包括:
10.根據(jù)權(quán)利要求1所述的數(shù)據(jù)緩存方法,其特征在于,將各組待緩存數(shù)據(jù)緩存至所述目標(biāo)機(jī)器節(jié)點(diǎn),包括:
11.一種數(shù)據(jù)緩存裝置,其特征在于,包括:
12.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括:
13.一種包含計算機(jī)可執(zhí)行指令的存儲介質(zhì),其特征在于,所述計算機(jī)可執(zhí)行指令在由計算機(jī)處理器執(zhí)行時用于執(zhí)行如權(quán)利要求1-10中任一所述的數(shù)據(jù)緩存方法。