本發(fā)明涉及云計(jì)算,特別是涉及一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)讀取方法、裝置及電子設(shè)備。
背景技術(shù):
1、目前,電子設(shè)備在存儲(chǔ)文件、讀取文件時(shí),經(jīng)常采用較為傳統(tǒng)的覓址方式。即,將文件的部分信息作為key,將文件的存儲(chǔ)地址作為value,將key-value信息作為文件的meta(元信息)加載到內(nèi)存中,用于文件的覓址。然而,當(dāng)需要存儲(chǔ)的文件較多時(shí),會(huì)產(chǎn)生大量的meta信息,這些meta信息會(huì)占用大量的內(nèi)存資源,甚至因meta信息的數(shù)據(jù)量太大導(dǎo)致內(nèi)存中根本加載不了所有緩存文件的meta信息。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例的目的在于提供一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)讀取方法、裝置及電子設(shè)備,將原來(lái)因?yàn)閿?shù)據(jù)量太大不能將meta信息直接加載內(nèi)存中進(jìn)行覓址的問(wèn)題,通過(guò)一種預(yù)先設(shè)定的規(guī)則和算法進(jìn)行覓址的方案來(lái)解決。具體技術(shù)方案如下:
2、本技術(shù)的第一方面,提供了一種數(shù)據(jù)存儲(chǔ)方法,所述方法包括:
3、響應(yīng)于針對(duì)目標(biāo)文件的存儲(chǔ)請(qǐng)求,基于資源定位符,采用預(yù)設(shè)散列函數(shù)計(jì)算散列值;所述散列值由n個(gè)比特段構(gòu)成;n為大于或等于1的正整數(shù);其中,所述目標(biāo)文件是基于所述資源定位符獲取的;
4、依次基于第i比特段計(jì)算第i-1層級(jí)存儲(chǔ)空間下的第i層級(jí)的目標(biāo)存儲(chǔ)空間;i為大于或等于1,小于或等于n的正整數(shù);當(dāng)i為1時(shí),所述第i-1層級(jí)存儲(chǔ)空間為總存儲(chǔ)空間;
5、可選的,所述基于第i比特段計(jì)算第i-1層級(jí)存儲(chǔ)空間下的第i層級(jí)的目標(biāo)存儲(chǔ)空間的步驟,包括:
6、確定第i比特段對(duì)應(yīng)的目標(biāo)進(jìn)制的第一數(shù)值;
7、確定第i層級(jí)的存儲(chǔ)空間數(shù)目;
8、基于所述第一數(shù)值對(duì)第i層級(jí)的存儲(chǔ)空間數(shù)目進(jìn)行取余運(yùn)算,確定以取余運(yùn)算結(jié)果作為序號(hào)的存儲(chǔ)空間為第i層級(jí)的目標(biāo)存儲(chǔ)空間。
9、可選的,第i層級(jí)的每個(gè)存儲(chǔ)空間對(duì)應(yīng)一個(gè)地址偏移量;所述地址偏移量表征該存儲(chǔ)空間的地址相對(duì)于該存儲(chǔ)空間所屬的第i-1層級(jí)的存儲(chǔ)空間的起始地址的偏移量;
10、所述第n層級(jí)的目標(biāo)存儲(chǔ)空間的地址為:n個(gè)層級(jí)的目標(biāo)存儲(chǔ)空間各自對(duì)應(yīng)的地址偏移量之和。
11、本技術(shù)的第二方面,提供了一種數(shù)據(jù)讀取方法,所述方法包括:
12、獲取針對(duì)目標(biāo)文件的讀取請(qǐng)求,所述讀取請(qǐng)求中攜帶目標(biāo)文件的資源定位符;
13、基于所述資源定位符,采用預(yù)設(shè)散列函數(shù)計(jì)算散列值;所述散列值由n個(gè)比特段構(gòu)成;n為大于或等于1的正整數(shù);
14、依次基于第i比特段計(jì)算第i-1層級(jí)存儲(chǔ)空間下的第i層級(jí)的目標(biāo)存儲(chǔ)空間;i為大于或等于1,小于或等于n的正整數(shù);當(dāng)i為1時(shí),所述第i-1層級(jí)存儲(chǔ)空間為總存儲(chǔ)空間;
15、從第n層級(jí)的目標(biāo)存儲(chǔ)空間中讀取所述目標(biāo)文件。
16、可選的,所述基于第i比特段計(jì)算第i-1層級(jí)存儲(chǔ)空間下的第i層級(jí)的目標(biāo)存儲(chǔ)空間的步驟,包括:
17、確定第i比特段對(duì)應(yīng)的目標(biāo)進(jìn)制的第一數(shù)值;
18、確定第i層級(jí)的存儲(chǔ)空間數(shù)目;
19、基于所述第一數(shù)值對(duì)第i層級(jí)的存儲(chǔ)空間數(shù)目進(jìn)行取余運(yùn)算,確定以取余運(yùn)算結(jié)果作為序號(hào)的存儲(chǔ)空間為第i層級(jí)的目標(biāo)存儲(chǔ)空間。
20、可選的,
21、第i層級(jí)的每個(gè)存儲(chǔ)空間對(duì)應(yīng)一個(gè)地址偏移量;所述地址偏移量表征該存儲(chǔ)空間的地址相對(duì)于該存儲(chǔ)空間所屬的第i-1層級(jí)的存儲(chǔ)空間的起始地址的偏移量;
22、所述第n層級(jí)的目標(biāo)存儲(chǔ)空間的地址為:n個(gè)層級(jí)的目標(biāo)存儲(chǔ)空間各自對(duì)應(yīng)的地址偏移量之和。
23、可選的,所述方法還包括:
24、從第n層級(jí)的目標(biāo)存儲(chǔ)空間中讀取與存儲(chǔ)文件對(duì)應(yīng)的資源定位符,根據(jù)讀取的資源定位符和所述讀取請(qǐng)求中攜帶的資源定位符進(jìn)行準(zhǔn)確性驗(yàn)證,若驗(yàn)證通過(guò),確定所述存儲(chǔ)文件為目標(biāo)文件。
25、本技術(shù)的第三方面,還提供了一種數(shù)據(jù)存儲(chǔ)裝置,所述裝置包括:
26、第一計(jì)算模塊,用于響應(yīng)于針對(duì)目標(biāo)文件的存儲(chǔ)請(qǐng)求,基于資源定位符,采用預(yù)設(shè)散列函數(shù)計(jì)算散列值;所述散列值由n個(gè)比特段構(gòu)成;n為大于或等于1的正整數(shù);其中,所述目標(biāo)文件是基于所述資源定位符獲取的;
27、第二計(jì)算模塊,用于依次基于第i比特段計(jì)算第i-1層級(jí)存儲(chǔ)空間下的第i層級(jí)的目標(biāo)存儲(chǔ)空間;i為大于或等于1,小于或等于n的正整數(shù);當(dāng)i為1時(shí),所述第i-1層級(jí)存儲(chǔ)空間為總存儲(chǔ)空間;
28、存儲(chǔ)模塊,用于將所述目標(biāo)文件存儲(chǔ)在第n層級(jí)的目標(biāo)存儲(chǔ)空間。
29、可選的,所述第二計(jì)算模塊,具體用于:
30、確定第i比特段對(duì)應(yīng)的目標(biāo)進(jìn)制的第一數(shù)值;
31、確定第i層級(jí)的存儲(chǔ)空間數(shù)目;
32、基于所述第一數(shù)值對(duì)第i層級(jí)的存儲(chǔ)空間數(shù)目進(jìn)行取余運(yùn)算,確定以取余運(yùn)算結(jié)果作為序號(hào)的存儲(chǔ)空間為第i層級(jí)的目標(biāo)存儲(chǔ)空間。
33、可選的,第i層級(jí)的每個(gè)存儲(chǔ)空間對(duì)應(yīng)一個(gè)地址偏移量;所述地址偏移量表征該存儲(chǔ)空間的地址相對(duì)于該存儲(chǔ)空間所屬的第i-1層級(jí)的存儲(chǔ)空間的起始地址的偏移量;
34、所述第n層級(jí)的目標(biāo)存儲(chǔ)空間的地址為:n個(gè)層級(jí)的目標(biāo)存儲(chǔ)空間各自對(duì)應(yīng)的地址偏移量之和。
35、本技術(shù)的第四方面,還提供了一種數(shù)據(jù)讀取裝置,所述裝置包括:
36、獲取模塊,用于獲取針對(duì)目標(biāo)文件的讀取請(qǐng)求,所述讀取請(qǐng)求中攜帶目標(biāo)文件的資源定位符;
37、第三計(jì)算模塊,用于基于所述資源定位符,采用預(yù)設(shè)散列函數(shù)計(jì)算散列值;所述散列值由n個(gè)比特段構(gòu)成;n為大于或等于1的正整數(shù);
38、第四計(jì)算模塊,用于依次基于第i比特段計(jì)算第i-1層級(jí)存儲(chǔ)空間下的第i層級(jí)的目標(biāo)存儲(chǔ)空間;i為大于或等于1,小于或等于n的正整數(shù);當(dāng)i為1時(shí),所述第i-1層級(jí)存儲(chǔ)空間為總存儲(chǔ)空間;
39、讀取模塊,用于從第n層級(jí)的目標(biāo)存儲(chǔ)空間中讀取所述目標(biāo)文件。
40、可選的,所述第四計(jì)算模塊,具體用于:
41、確定第i比特段對(duì)應(yīng)的目標(biāo)進(jìn)制的第一數(shù)值;
42、確定第i層級(jí)的存儲(chǔ)空間數(shù)目;
43、基于所述第一數(shù)值對(duì)第i層級(jí)的存儲(chǔ)空間數(shù)目進(jìn)行取余運(yùn)算,確定以取余運(yùn)算結(jié)果作為序號(hào)的存儲(chǔ)空間為第i層級(jí)的目標(biāo)存儲(chǔ)空間。
44、可選的,第i層級(jí)的每個(gè)存儲(chǔ)空間對(duì)應(yīng)一個(gè)地址偏移量;所述地址偏移量表征該存儲(chǔ)空間的地址相對(duì)于該存儲(chǔ)空間所屬的第i-1層級(jí)的存儲(chǔ)空間的起始地址的偏移量;
45、所述第n層級(jí)的目標(biāo)存儲(chǔ)空間的地址為:n個(gè)層級(jí)的目標(biāo)存儲(chǔ)空間各自對(duì)應(yīng)的地址偏移量之和。
46、可選的,所述裝置還包括:
47、驗(yàn)證模塊,用于從第n層級(jí)的目標(biāo)存儲(chǔ)空間中讀取與存儲(chǔ)文件對(duì)應(yīng)的資源定位符,根據(jù)讀取的資源定位符和所述讀取請(qǐng)求中攜帶的資源定位符進(jìn)行準(zhǔn)確性驗(yàn)證,若驗(yàn)證通過(guò),確定所述存儲(chǔ)文件為目標(biāo)文件。
48、本技術(shù)的第五方面,提供了一種電子設(shè)備,包括處理器、通信接口、存儲(chǔ)器和通信總線,其中,處理器,通信接口,存儲(chǔ)器通過(guò)通信總線完成相互間的通信;
49、存儲(chǔ)器,用于存放計(jì)算機(jī)程序;
50、處理器,用于執(zhí)行存儲(chǔ)器上所存放的程序時(shí),實(shí)現(xiàn)上述任一所述的方法步驟。
51、本技術(shù)的第六方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)內(nèi)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述任一方法步驟。
52、本技術(shù)的第七方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述任一方法步驟。
53、應(yīng)用本技術(shù)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)讀取方法、裝置及電子設(shè)備,響應(yīng)于針對(duì)目標(biāo)文件的存儲(chǔ)請(qǐng)求,基于資源定位符,采用預(yù)設(shè)散列函數(shù)計(jì)算散列值;散列值由n個(gè)比特段構(gòu)成;n為大于或等于1的正整數(shù);其中,目標(biāo)文件是基于所述資源定位符獲取的;依次基于第i比特段計(jì)算第i-1層級(jí)存儲(chǔ)空間下的第i層級(jí)的目標(biāo)存儲(chǔ)空間;i為大于或等于1,小于或等于n的正整數(shù);當(dāng)i為1時(shí),第i-1層級(jí)存儲(chǔ)空間為總存儲(chǔ)空間;將目標(biāo)文件存儲(chǔ)在第n層級(jí)的目標(biāo)存儲(chǔ)空間。
54、使用本技術(shù)實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法對(duì)海量數(shù)據(jù)進(jìn)行存儲(chǔ),由于預(yù)先對(duì)存儲(chǔ)空間進(jìn)行了層級(jí)劃分,并預(yù)先設(shè)置了散列函數(shù)、規(guī)定了散列值的分段情況,從而在需要存儲(chǔ)目標(biāo)文件時(shí),只需要進(jìn)行散列運(yùn)算,再根據(jù)散列值包含的各個(gè)比特段計(jì)算在不同層級(jí)下的目標(biāo)存儲(chǔ)空間,最終定位到第n層級(jí)的目標(biāo)存儲(chǔ)空間,將目標(biāo)文件存儲(chǔ)在第n層級(jí)的目標(biāo)存儲(chǔ)空間。
55、可見(jiàn),將原來(lái)因?yàn)閿?shù)據(jù)量太大不能將meta信息直接加載內(nèi)存中進(jìn)行覓址的問(wèn)題,通過(guò)一種預(yù)先設(shè)定的規(guī)則和算法進(jìn)行覓址的方案來(lái)解決。不需要內(nèi)存中存儲(chǔ)海量數(shù)據(jù)對(duì)應(yīng)的meta信息,節(jié)省了寶貴的內(nèi)存資源。