本發(fā)明涉及前端處理,尤其涉及一種瀏覽器多級(jí)緩存策略管理方法、設(shè)備及介質(zhì)。
背景技術(shù):
1、隨著數(shù)據(jù)量的增加,數(shù)據(jù)緩存的重要性和應(yīng)用場(chǎng)景也在不斷擴(kuò)展和演進(jìn),則根據(jù)數(shù)據(jù)量的增加,某些數(shù)據(jù)可能會(huì)成為熱點(diǎn)數(shù)據(jù),即被頻繁訪問(wèn)的數(shù)據(jù),即數(shù)據(jù)緩存可以有效地管理和存儲(chǔ)熱點(diǎn)數(shù)據(jù),但為了能夠靈活適應(yīng)復(fù)雜的訪問(wèn)模式,需要通過(guò)多級(jí)緩存管理數(shù)據(jù)緩存策略。
2、現(xiàn)有的數(shù)據(jù)緩存技術(shù)多為最近最少使用策略或先進(jìn)先出策略。實(shí)際應(yīng)用中,最近最少使用策略對(duì)于頻繁訪問(wèn)的數(shù)據(jù),不能很好地處理可能導(dǎo)致緩存抖動(dòng),無(wú)法區(qū)分?jǐn)?shù)據(jù)的熱度和重要性,難以應(yīng)對(duì)復(fù)雜的訪問(wèn)模式,而先進(jìn)先出策略不能考慮數(shù)據(jù)的訪問(wèn)頻率和熱度,容易清楚掉重要數(shù)據(jù),可能導(dǎo)致對(duì)數(shù)據(jù)緩存管理方式過(guò)于單一,從而對(duì)進(jìn)行數(shù)據(jù)緩存管理時(shí)的精確度較低。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種瀏覽器多級(jí)緩存策略管理方法、設(shè)備及介質(zhì),其主要目的在于解決進(jìn)行數(shù)據(jù)緩存管理時(shí)的精確度較低的問(wèn)題。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種瀏覽器多級(jí)緩存策略管理方法,包括:
3、根據(jù)預(yù)設(shè)的第一緩存容量創(chuàng)建高級(jí)訪問(wèn)頻率的熱緩存,根據(jù)預(yù)設(shè)的第二緩存容量創(chuàng)建中級(jí)訪問(wèn)頻率的溫緩存,根據(jù)預(yù)設(shè)的第三緩存容量創(chuàng)建低級(jí)訪問(wèn)頻率的冷緩存,并通過(guò)所述熱緩存、所述溫緩存及所述冷緩存生成三級(jí)緩存;
4、當(dāng)瀏覽器接收數(shù)據(jù)寫入請(qǐng)求時(shí),提取所述數(shù)據(jù)寫入請(qǐng)求對(duì)應(yīng)的寫入數(shù)據(jù)項(xiàng)的數(shù)據(jù)值及數(shù)據(jù)權(quán)重,根據(jù)所述數(shù)據(jù)值及所述數(shù)據(jù)權(quán)重判定所述寫入數(shù)據(jù)項(xiàng)是否寫入至所述三級(jí)緩存中的任一緩存層級(jí)中;
5、當(dāng)所述寫入數(shù)據(jù)項(xiàng)寫入至所述三級(jí)緩存中的任一緩存層級(jí)中時(shí),再根據(jù)所述寫入數(shù)據(jù)項(xiàng)對(duì)應(yīng)的寫入緩存層級(jí)的緩存容量確定所述寫入數(shù)據(jù)項(xiàng)寫入所述三級(jí)緩存中的最終緩存層級(jí),將所述寫入數(shù)據(jù)項(xiàng)寫入至所述最終緩存層級(jí)中;
6、當(dāng)瀏覽器接收數(shù)據(jù)讀取請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀取請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的鍵值讀取所述數(shù)據(jù)讀取請(qǐng)求在所述三級(jí)緩存中對(duì)應(yīng)的緩存數(shù)據(jù)。
7、可選地,所述根據(jù)預(yù)設(shè)的第一緩存容量創(chuàng)建高級(jí)訪問(wèn)頻率的熱緩存,包括:
8、對(duì)熱緩存的存儲(chǔ)鍵名進(jìn)行配置,并初始化配置后的熱緩存中緩存對(duì)象;
9、根據(jù)預(yù)設(shè)的第一緩存容量確定所述緩存對(duì)象的數(shù)量;
10、通過(guò)所述存儲(chǔ)鍵名及所述緩存對(duì)象的數(shù)量創(chuàng)建高級(jí)訪問(wèn)頻率的熱緩存。
11、可選地,所述通過(guò)所述熱緩存、所述溫緩存及所述冷緩存生成三級(jí)緩存,包括:
12、將所述熱緩存作為第一層級(jí)緩存,將所述溫緩存作為第二層級(jí)緩存,將所述冷緩存作為第三層級(jí)緩存;
13、按照所述第一層級(jí)緩存、所述第二層級(jí)緩存及所述第三層級(jí)緩存的緩存順序生成三級(jí)緩存。
14、可選地,所述提取所述數(shù)據(jù)寫入請(qǐng)求對(duì)應(yīng)的寫入數(shù)據(jù)項(xiàng)的數(shù)據(jù)值及數(shù)據(jù)權(quán)重,包括:
15、提取所述數(shù)據(jù)寫入請(qǐng)求對(duì)應(yīng)的寫入請(qǐng)求參數(shù);
16、根據(jù)所述寫入請(qǐng)求參數(shù)確定寫入數(shù)據(jù)項(xiàng)對(duì)應(yīng)的鍵值;
17、根據(jù)所述鍵值提取寫入數(shù)據(jù)項(xiàng)的數(shù)據(jù)值及數(shù)據(jù)權(quán)重。
18、可選地,所述根據(jù)所述數(shù)據(jù)值及所述數(shù)據(jù)權(quán)重判定所述寫入數(shù)據(jù)項(xiàng)是否寫入至所述三級(jí)緩存中的任一緩存層級(jí)中,包括:
19、判斷所述寫入數(shù)據(jù)項(xiàng)的數(shù)據(jù)值對(duì)應(yīng)的數(shù)據(jù)權(quán)重是否是高等權(quán)重;
20、當(dāng)所述寫入數(shù)據(jù)項(xiàng)的數(shù)據(jù)權(quán)重是高等權(quán)重時(shí),確定所述寫入數(shù)據(jù)項(xiàng)的緩存層級(jí)為所述三級(jí)緩存中的熱緩存;
21、當(dāng)所述寫入數(shù)據(jù)項(xiàng)的數(shù)據(jù)權(quán)重不是高等權(quán)重時(shí),判斷所述寫入數(shù)據(jù)項(xiàng)的數(shù)據(jù)權(quán)重是否是中等權(quán)重;
22、當(dāng)所述寫入數(shù)據(jù)項(xiàng)的數(shù)據(jù)權(quán)重是中等權(quán)重時(shí),確定所述寫入數(shù)據(jù)項(xiàng)的緩存層級(jí)為所述三級(jí)緩存中的溫緩存;
23、當(dāng)所述寫入數(shù)據(jù)項(xiàng)的數(shù)據(jù)權(quán)重不是中等權(quán)重時(shí),確定所述寫入數(shù)據(jù)項(xiàng)的緩存層級(jí)為所述三級(jí)緩存中的冷緩存。
24、可選地,所述根據(jù)所述寫入數(shù)據(jù)項(xiàng)對(duì)應(yīng)的寫入緩存層級(jí)的緩存容量確定所述寫入數(shù)據(jù)項(xiàng)在所述三級(jí)緩存中的最終緩存層級(jí),包括:
25、當(dāng)所述寫入緩存層級(jí)為熱緩存時(shí),根據(jù)所述熱緩存的緩存容量判斷所述熱緩存的緩存容量是否已滿,當(dāng)所述熱緩存的緩存容量未滿時(shí),將所述三級(jí)緩存中的熱緩存確定為所述寫入數(shù)據(jù)項(xiàng)的最終緩存層級(jí);
26、當(dāng)所述熱緩存的緩存容量已滿時(shí),將所述熱緩存中數(shù)據(jù)權(quán)重最小的緩存數(shù)據(jù)移動(dòng)至所述三級(jí)緩存中的溫緩存中,并將移動(dòng)后的熱緩存確定為所述寫入數(shù)據(jù)項(xiàng)的最終緩存層級(jí);
27、當(dāng)所述寫入緩存層級(jí)為溫緩存時(shí),根據(jù)所述溫緩存的緩存容量判斷所述溫緩存的緩存容量是否已滿,當(dāng)所述溫緩存的緩存容量未滿時(shí),將所述三級(jí)緩存中的溫緩存確定為所述寫入數(shù)據(jù)項(xiàng)的最終緩存層級(jí);
28、當(dāng)所述溫緩存的緩存容量已滿時(shí),將所述溫緩存中數(shù)據(jù)權(quán)重最小的緩存數(shù)據(jù)移動(dòng)至所述三級(jí)緩存中的冷緩存中,并將移動(dòng)后的溫緩存確定為所述寫入數(shù)據(jù)項(xiàng)的最終緩存層級(jí);
29、當(dāng)所述寫入緩存層級(jí)為冷緩存時(shí),根據(jù)所述冷緩存的緩存容量判斷所述冷緩存的緩存容量是否已滿,當(dāng)所述冷緩存的緩存容量未滿時(shí),將所述三級(jí)緩存中的冷緩存確定為所述寫入數(shù)據(jù)項(xiàng)的最終緩存層級(jí);
30、當(dāng)所述冷緩存的緩存容量已滿時(shí),刪除所述冷緩存中數(shù)據(jù)權(quán)重最小的緩存數(shù)據(jù),并將刪除后的溫緩存確定為所述寫入數(shù)據(jù)項(xiàng)的最終緩存層級(jí)。
31、可選地,所述根據(jù)所述數(shù)據(jù)讀取請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的鍵值讀取所述數(shù)據(jù)讀取請(qǐng)求在所述三級(jí)緩存中對(duì)應(yīng)的緩存數(shù)據(jù),包括:
32、提取所述三級(jí)緩存中每個(gè)緩存層級(jí)對(duì)應(yīng)的緩存鍵值;
33、將所述緩存鍵值與所述數(shù)據(jù)讀取請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的鍵值進(jìn)行對(duì)比;
34、根據(jù)對(duì)比后的鍵值判斷所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的緩存層級(jí);
35、將所述緩存層級(jí)對(duì)應(yīng)的數(shù)據(jù)權(quán)重疊加預(yù)設(shè)的數(shù)據(jù)閾值,并判斷疊加后的數(shù)據(jù)權(quán)重是否達(dá)到預(yù)先設(shè)定的緩存權(quán)重;
36、當(dāng)疊加后的數(shù)據(jù)權(quán)重達(dá)到預(yù)先設(shè)定的緩存權(quán)重時(shí),將所述緩存層級(jí)更新為預(yù)先設(shè)定的緩存權(quán)重對(duì)應(yīng)的緩存層級(jí);
37、在更新后的緩存層級(jí)中讀取所述數(shù)據(jù)讀取請(qǐng)求對(duì)應(yīng)的緩存數(shù)據(jù)。
38、可選地,所述在更新后的緩存層級(jí)中讀取所述數(shù)據(jù)讀取請(qǐng)求對(duì)應(yīng)的緩存數(shù)據(jù),包括:
39、提取更新后的緩存層級(jí)中每個(gè)數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)權(quán)重;
40、按照從大到小的順序?qū)⑺鰯?shù)據(jù)權(quán)重進(jìn)行排序;
41、讀取排序后的數(shù)據(jù)權(quán)重最大的數(shù)據(jù)為所述數(shù)據(jù)讀取請(qǐng)求對(duì)應(yīng)的緩存數(shù)據(jù)。
42、為了解決上述問(wèn)題,本發(fā)明還提供一種電子設(shè)備,所述電子設(shè)備包括:
43、至少一個(gè)處理器;以及,
44、與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
45、所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行上述所述的瀏覽器多級(jí)緩存策略管理方法。
46、為了解決上述問(wèn)題,本發(fā)明還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有至少一個(gè)計(jì)算機(jī)程序,所述至少一個(gè)計(jì)算機(jī)程序被電子設(shè)備中的處理器執(zhí)行以實(shí)現(xiàn)上述所述的瀏覽器多級(jí)緩存策略管理方法。
47、本發(fā)明實(shí)施例分為熱、溫、冷緩存層級(jí),每個(gè)層級(jí)有不同的容量和優(yōu)先級(jí),通過(guò)多級(jí)緩存層級(jí)管理,能有效減少頻繁數(shù)據(jù)訪問(wèn)導(dǎo)致的緩存抖動(dòng)問(wèn)題;每個(gè)緩存項(xiàng)附帶權(quán)重屬性,權(quán)重根據(jù)訪問(wèn)頻率和數(shù)據(jù)重要性動(dòng)態(tài)調(diào)整,則基于訪問(wèn)頻率和數(shù)據(jù)熱度動(dòng)態(tài)調(diào)整數(shù)據(jù)層級(jí),提高緩存命中,通過(guò)多維度優(yōu)先級(jí)模型使得緩存策略能夠靈活應(yīng)對(duì)復(fù)雜多變的訪問(wèn)模式,利用多層級(jí)和權(quán)重,對(duì)緩存進(jìn)行動(dòng)態(tài)管理,高效智能。因此本發(fā)明提出的瀏覽器多級(jí)緩存策略管理方法、設(shè)備及介質(zhì),可以解決進(jìn)行數(shù)據(jù)緩存管理時(shí)的精確度較低的問(wèn)題。