本申請涉及數(shù)據(jù)存儲,特別是涉及一種緩存數(shù)據(jù)的構(gòu)建方法、裝置、計算機設(shè)備、計算機可讀存儲介質(zhì)和計算機程序產(chǎn)品。
背景技術(shù):
1、通常,出于經(jīng)濟(jì)考慮,可以將業(yè)務(wù)所需要的數(shù)據(jù)全量保存在低速存儲介質(zhì)上,為了提升讀性能,可以依靠高速存儲介質(zhì)來彌補低速存儲介質(zhì)的讀性能不足的情況。
2、全量構(gòu)建是一種訪問即構(gòu)建的方法,業(yè)務(wù)訪問到的數(shù)據(jù),無論讀寫均會無差別地構(gòu)建到緩存中。然而,這種方式存在緩存成本高,且數(shù)據(jù)讀取時數(shù)據(jù)命中率低的問題。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種能夠降低緩存成本,提高數(shù)據(jù)讀取時的命中率的緩存數(shù)據(jù)的構(gòu)建方法、裝置、計算機設(shè)備、計算機可讀存儲介質(zhì)和計算機程序產(chǎn)品。
2、第一方面,本申請?zhí)峁┝艘环N緩存數(shù)據(jù)的構(gòu)建方法。所述方法包括:
3、接收數(shù)據(jù)讀取請求,并在緩存中查詢是否存在所述數(shù)據(jù)讀取請求包括的目標(biāo)key;
4、在所述緩存中不存在所述目標(biāo)key的情況下,從預(yù)設(shè)位圖中獲取所述目標(biāo)key對應(yīng)的目標(biāo)熱度信息,所述預(yù)設(shè)位圖中包括多個key對應(yīng)的多個熱度信息;
5、根據(jù)所述目標(biāo)熱度信息,確定是否在所述緩存中構(gòu)建所述目標(biāo)key對應(yīng)的緩存項。
6、在其中一個實施例中,所述目標(biāo)熱度信息包括目標(biāo)熱度值和目標(biāo)熱度衰減值,所述根據(jù)所述目標(biāo)熱度信息,確定是否在所述緩存中構(gòu)建所述目標(biāo)key對應(yīng)的緩存項,包括:
7、若所述目標(biāo)熱度值滿足預(yù)設(shè)條件,則在所述緩存中構(gòu)建所述緩存項;
8、若所述目標(biāo)熱度值不滿足所述預(yù)設(shè)條件,則禁止在所述緩存中構(gòu)建所述緩存項,并對所述目標(biāo)熱度值和所述目標(biāo)熱度衰減值分別進(jìn)行調(diào)整處理。
9、在其中一個實施例中,所述預(yù)設(shè)條件為所述目標(biāo)熱度值為第一值,所述對所述目標(biāo)熱度值和所述目標(biāo)熱度衰減值分別進(jìn)行調(diào)整處理,包括:
10、對所述目標(biāo)熱度值累加1,得到累加后的熱度值,所述累加后的熱度值小于或者等于所述第一值;
11、將所述目標(biāo)熱度衰減值增加至目標(biāo)值,所述目標(biāo)值為所述目標(biāo)熱度衰減值的最大值。
12、在其中一個實施例中,所述若所述目標(biāo)熱度值滿足預(yù)設(shè)條件,所述方法還包括:
13、將所述目標(biāo)熱度值由所述第一值置為第二值,所述第二值小于所述第一值。
14、在其中一個實施例中,所述第一值的取值范圍與所述目標(biāo)熱度值在所述預(yù)設(shè)位圖中對應(yīng)的比特位數(shù)相關(guān);
15、所述目標(biāo)熱度衰減值的取值范圍與所述目標(biāo)熱度衰減值在所述預(yù)設(shè)位圖中對應(yīng)的比特位數(shù)相關(guān)。
16、在其中一個實施例中,所述在所述緩存中構(gòu)建所述緩存項,包括:
17、從硬盤中查找得到所述目標(biāo)key對應(yīng)的目標(biāo)value;
18、根據(jù)所述目標(biāo)key和所述目標(biāo)value,在所述緩存中構(gòu)建所述緩存項。
19、在其中一個實施例中,所述方法還包括:
20、按照預(yù)設(shè)的時間周期,將所述預(yù)設(shè)位圖中大于所述第二值的熱度衰減值減1;
21、刪除在所述預(yù)設(shè)位圖中,將等于所述第二值的熱度衰減值對應(yīng)的熱度值減1。
22、在其中一個實施例中,所述從預(yù)設(shè)位圖中獲取所述目標(biāo)key對應(yīng)的目標(biāo)熱度信息,包括:
23、對所述目標(biāo)key進(jìn)行哈希運算,得到所述目標(biāo)key對應(yīng)的哈希值;
24、在所述預(yù)設(shè)位圖中確定所述哈希值指向的目標(biāo)位置,并從所述目標(biāo)位置中讀取所述目標(biāo)熱度信息。
25、在其中一個實施例中,所述數(shù)據(jù)讀取請求中包括緩存構(gòu)建指示指令,所述從預(yù)設(shè)位圖中獲取所述目標(biāo)key對應(yīng)的目標(biāo)熱度信息之前,所述方法還包括:
26、確定所述緩存構(gòu)建指示指令是否指示構(gòu)建緩存項;
27、所述從預(yù)設(shè)位圖中獲取所述目標(biāo)key對應(yīng)的目標(biāo)熱度信息,包括:
28、若所述緩存構(gòu)建指示指令指示構(gòu)建緩存項,則從所述預(yù)設(shè)位圖中獲取所述目標(biāo)熱度信息。
29、第二方面,本申請還提供了一種緩存數(shù)據(jù)的構(gòu)建裝置。所述裝置包括:
30、查詢模塊,用于接收數(shù)據(jù)讀取請求,并在緩存中查詢是否存在所述數(shù)據(jù)讀取請求包括的目標(biāo)key;
31、獲取模塊,用于在緩存中不存在所述目標(biāo)key的情況下,從預(yù)設(shè)位圖中獲取所述目標(biāo)key對應(yīng)的目標(biāo)熱度信息,所述預(yù)設(shè)位圖中包括多個key對應(yīng)的多個熱度信息;
32、構(gòu)建模塊,用于根據(jù)所述目標(biāo)熱度信息,確定是否在所述緩存中構(gòu)建所述key對應(yīng)的緩存項。
33、第三方面,本申請還提供了一種計算機設(shè)備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如上述第一方面所述的方法的步驟。
34、第四方面,本申請還提供了一種計算機可讀存儲介質(zhì)。所述計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述第一方面所述的方法的步驟。
35、第五方面,本申請還提供了一種計算機程序產(chǎn)品。所述計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如上述第一方面所述的方法的步驟。
36、上述緩存數(shù)據(jù)的構(gòu)建方法、裝置、計算機設(shè)備、計算機可讀存儲介質(zhì)和計算機程序產(chǎn)品,通過接收數(shù)據(jù)讀取請求,并在緩存中查詢是否存在數(shù)據(jù)讀取請求包括的目標(biāo)key,接著,在緩存中不存在目標(biāo)key的情況下,從預(yù)設(shè)位圖中獲取目標(biāo)key對應(yīng)的目標(biāo)熱度信息,其中,預(yù)設(shè)位圖中包括多個key對應(yīng)的多個熱度信息,而后,根據(jù)目標(biāo)熱度信息,確定是否在緩存中構(gòu)建目標(biāo)key對應(yīng)的緩存項,本申請?zhí)峁┑木彺鏀?shù)據(jù)的構(gòu)建方法中,由于根據(jù)目標(biāo)熱度信息確定是否在緩存中構(gòu)建目標(biāo)key對應(yīng)的緩存項,能夠在目標(biāo)熱度信息表征目標(biāo)key被頻繁訪問的情況下,在緩存中構(gòu)建對應(yīng)的緩存項,以及在熱度信息表征目標(biāo)key不被頻繁訪問的情況下,不在緩存中構(gòu)建對應(yīng)的緩存項,相比于訪問即構(gòu)建的全量構(gòu)建,能夠避免緩存空間被過多占用,導(dǎo)致緩存成本高的問題,從而能夠降低緩存成本,而且,由于緩存項是目標(biāo)key被頻繁訪問的情況下構(gòu)建的,使得服務(wù)器下次接收數(shù)據(jù)讀取請求時,緩存中存在目標(biāo)key的概率大大增加,進(jìn)而提高了數(shù)據(jù)讀取時的命中率。
1.一種緩存數(shù)據(jù)的構(gòu)建方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)熱度信息包括目標(biāo)熱度值和目標(biāo)熱度衰減值,所述根據(jù)所述目標(biāo)熱度信息,確定是否在所述緩存中構(gòu)建所述目標(biāo)key對應(yīng)的緩存項,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預(yù)設(shè)條件為所述目標(biāo)熱度值為第一值,所述對所述目標(biāo)熱度值和所述目標(biāo)熱度衰減值分別進(jìn)行調(diào)整處理,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述若所述目標(biāo)熱度值滿足預(yù)設(shè)條件,所述方法還包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述第一值的取值范圍與所述目標(biāo)熱度值在所述預(yù)設(shè)位圖中對應(yīng)的比特位數(shù)相關(guān);
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在所述緩存中構(gòu)建所述緩存項,包括:
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從預(yù)設(shè)位圖中獲取所述目標(biāo)key對應(yīng)的目標(biāo)熱度信息,包括:
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)讀取請求中包括緩存構(gòu)建指示指令,所述從預(yù)設(shè)位圖中獲取所述目標(biāo)key對應(yīng)的目標(biāo)熱度信息之前,所述方法還包括:
10.一種緩存數(shù)據(jù)的構(gòu)建裝置,其特征在于,所述裝置包括:
11.一種計算機設(shè)備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)權(quán)利要求1至9中任一項所述的方法的步驟。
12.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至9中任一項所述的方法的步驟。
13.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至9中任一項所述的方法的步驟。