本申請涉及緩存控制技術(shù)領(lǐng)域,尤其是涉及一種應(yīng)用系統(tǒng)及其緩存控制方法和裝置。
背景技術(shù):
眾所周知,緩存是數(shù)據(jù)交換的緩沖區(qū)(稱作cache)。一般的,為了提高應(yīng)用系統(tǒng)的性能(如響應(yīng)時(shí)間、吞吐量等),常常會(huì)引入不同類型的緩存。而對于緩存而言,緩存命中率是判斷其加速效果好壞的重要因素之一。當(dāng)用戶訪問緩存時(shí),如果該緩存內(nèi)緩存了要被訪問的數(shù)據(jù)時(shí)稱之為緩存命中;否則就是稱之為緩存未命中,此時(shí),需要從下游(例如數(shù)據(jù)庫等)取數(shù)據(jù)。
由此可見,應(yīng)用系統(tǒng)的緩存命中率的高低直接影響應(yīng)用系統(tǒng)性能的好壞。因此,如何提高緩存命中率是目前亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例的目的在于提供一種應(yīng)用系統(tǒng)及其緩存控制方法和裝置,以提高應(yīng)用系統(tǒng)的緩存命中率。
為達(dá)到上述目的,一方面,本申請實(shí)施例提供了一種緩存控制方法,包括以下步驟:
獲取緩存的第一指定參數(shù)取值范圍及第二指定參數(shù)取值范圍;
獲取所述第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
將所述緩存的第一指定參數(shù)的參數(shù)值調(diào)整為所述滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
獲取所述第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值;
將所述緩存的第二指定參數(shù)的參數(shù)值調(diào)整為所述滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值。
另一方面,本申請實(shí)施例提供了一種緩存控制裝置,包括:
取值范圍獲取模塊,用于獲取緩存的第一指定參數(shù)取值范圍及第二指定參數(shù)取值范圍;
第一命中率獲取模塊,用于獲取所述第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
第一指定參數(shù)調(diào)整模塊,用于將所述緩存的第一指定參數(shù)的參數(shù)值調(diào)整為所述滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
第二命中率獲取模塊,用于獲取所述第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值;
第二指定參數(shù)調(diào)整模塊,用于將所述緩存的第二指定參數(shù)的參數(shù)值調(diào)整為所述滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值。
另一方面,本申請實(shí)施例提供了一種應(yīng)用系統(tǒng),包括:
處理器;
存儲(chǔ)器,用于存儲(chǔ)緩存控制裝置;
其中,所述緩存控制裝置被所述處理器處理時(shí),執(zhí)行如下步驟:
獲取緩存的第一指定參數(shù)取值范圍及第二指定參數(shù)取值范圍;
獲取所述第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
將所述緩存的第一指定參數(shù)的參數(shù)值調(diào)整為所述滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
獲取所述第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值;
將所述緩存的第二指定參數(shù)的參數(shù)值調(diào)整為所述滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值。
由以上本申請實(shí)施例提供的技術(shù)方案可見,本申請實(shí)施例通過獲取緩存的第一指定參數(shù)取值范圍的每個(gè)第一指定參數(shù)取值所對應(yīng)的緩存命中率,確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值,然后將緩存的第一指定參數(shù)的第一指定參數(shù)取值調(diào)整為該滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;在此基礎(chǔ)上,又通過獲取緩存的第二指定參數(shù)取值范圍的每個(gè)第二指定參數(shù)取值所對應(yīng)的緩存命中率,確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,然后將緩存的第二指定參數(shù)的第二指定參數(shù)取值調(diào)整為該滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,而第一指定參數(shù)和第二指定參數(shù)都是重要的影響緩存命中率的參數(shù),因此,將其調(diào)整為較優(yōu)值可以提高應(yīng)用系統(tǒng)的緩存命中率。
附圖說明
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。在附圖中:
圖1為本申請一實(shí)施例的緩存控制方法的流程圖;
圖2為本申請一實(shí)施例中獲取第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率的流程圖;
圖3為本申請一實(shí)施例中獲取第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率的流程圖;
圖4為本申請一實(shí)施例的緩存控制裝置的結(jié)構(gòu)框圖;
圖5為本申請一實(shí)施例的應(yīng)用系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
參考圖1所示,本申請實(shí)施例的緩存控制方法,包括以下步驟:
s101、獲取緩存的第一指定參數(shù)取值范圍及第二指定參數(shù)取值范圍。
本申請實(shí)施例中,所述的緩存可以是本地緩存,也可以是分布式緩存。在本申請的一個(gè)實(shí)施例中,所述本地緩存例如可以是本地內(nèi)存緩存。在本申請的一個(gè)實(shí)施例中,所述分布式緩存例如可以為memcached分布式緩存、redis分布式緩存、tair分布式緩存等。本申請實(shí)施例中,所述的緩存還可以為map緩存,所述map緩存即通過java中的map接口以key-value(鍵值對)方式存儲(chǔ)數(shù)據(jù)。
一般的,影響緩存的緩存命中率的參數(shù)有很多,例如緩存容量和緩存有效期等。而本申請實(shí)施例則可通過調(diào)整一些指定的緩存命中率影響參數(shù)來實(shí)現(xiàn)緩存命中率的提升。例如在本申請實(shí)施例中,可通過調(diào)整緩存容量和緩存有效期來實(shí)現(xiàn)緩存命中率的提升。其中,所述第一指定參數(shù)可以為緩存容量,對應(yīng)的,所述第二指定參數(shù)可以為緩存有效期。當(dāng)然,所述第一指定參數(shù)也可以為緩存有效期,對應(yīng)的,所述第二指定參數(shù)也可以為緩存容量。而在本申請另一個(gè)實(shí)施例中,根據(jù)需要還可以通過調(diào)整更多或更少的緩存命中率影響參數(shù)來實(shí)現(xiàn)。
本申請實(shí)施例中,由于第一指定參數(shù)取值范圍和第二指定參數(shù)取值范圍一般是根據(jù)需要預(yù)先配置好的。因此,通過讀取第一指定參數(shù)和第二指定參數(shù)相應(yīng)的配置信息就可以相應(yīng)獲得第一指定參數(shù)取值范圍和第二指定參數(shù)取值范圍。
s102、獲取所述第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值。
在本申請的一個(gè)實(shí)施例中,所述獲取所述第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值。在本申請的一個(gè)實(shí)施例中,所述滿足第一條件的緩存命中率可以為:所述各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率中的最高者。在本申請的另一個(gè)實(shí)施例中,所述滿足第一條件的緩存命中率也可以為:所述各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率中達(dá)到預(yù)設(shè)閾值的。本步驟具體實(shí)現(xiàn)可以如圖2所示,包括:
s1021、確定所述第一指定參數(shù)取值范圍內(nèi)不存在對應(yīng)緩存命中率的第一指定參數(shù)值,構(gòu)成第一指定參數(shù)值集合。
本申請實(shí)施例中,為獲得滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值,可獲取所述第一指定參數(shù)取值范圍內(nèi)的每個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率,以從中確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值。因此,需要確定所述第一指定參數(shù)取值范圍內(nèi)不存在對應(yīng)緩存命中率的第一指定參數(shù)值,并將這些第一指定參數(shù)值構(gòu)成第一指定參數(shù)值集合。
s1022、從所述第一指定參數(shù)值集合中取出一個(gè)第一指定參數(shù)值。
s1023、將所述緩存的第一指定參數(shù)的參數(shù)值調(diào)整為該第一指定參數(shù)值。
s1024、獲取所述緩存在該第一指定參數(shù)值下的緩存命中率。
本申請一個(gè)實(shí)施例,一般可通過預(yù)設(shè)的計(jì)數(shù)器等統(tǒng)計(jì)單位時(shí)間(或統(tǒng)計(jì)周期)內(nèi)緩存的訪問請求次數(shù)和命中次數(shù),然后通過計(jì)算命中次數(shù)與訪問請求次數(shù)的比值,可以得到當(dāng)前統(tǒng)計(jì)周期內(nèi)所述緩存的緩存命中率,并保存緩存命中率記錄,從而通過讀取該緩存命中率記錄可以獲取所述緩存在某個(gè)第一指定參數(shù)值下的緩存命中率。
s1025、判斷第一指定參數(shù)值集合中是否存在剩余未設(shè)置的第一指定參數(shù)值。如果存在則執(zhí)行步驟s1022,否則執(zhí)行步驟s1026。以此類推,直至獲取到所述第一指定參數(shù)值集合中各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率為止。
s1026、將所述第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率進(jìn)行排序,以確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值。
本申請實(shí)施例中,所述排序可以是由大到小的順序排序,從而可以確定第一順位的緩存命中率為最高緩存命中率。當(dāng)然,所述排序也可以是由小到大的順序排序,從而可以確定末位的緩存命中率為最高緩存命中率。
s103、將所述緩存的第一指定參數(shù)的參數(shù)值調(diào)整為所述滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值。
s104、獲取所述第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值。
在本申請的一個(gè)實(shí)施例中,在已經(jīng)將所述緩存的第一指定參數(shù)的參數(shù)值調(diào)整為所述滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值的基礎(chǔ)上,所述獲取所述第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,在本申請的一個(gè)實(shí)施例中,所述滿足第二條件的緩存命中率可以為:所述各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率中的最高者。在本申請的另一個(gè)實(shí)施例中,所述滿足第二條件的緩存命中率也可以為:所述各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率中達(dá)到預(yù)設(shè)閾值的。本步驟具體實(shí)現(xiàn)可以如圖3所示,包括:
s1031、確定所述第二指定參數(shù)取值范圍內(nèi)不存在對應(yīng)緩存命中率的第二指定參數(shù)值,構(gòu)成第二指定參數(shù)值集合。
本申請實(shí)施例中,為獲得滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,可獲取所述第二指定參數(shù)取值范圍內(nèi)的每個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率,以從中確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值。因此,需要確定所述第二指定參數(shù)取值范圍內(nèi)不存在對應(yīng)緩存命中率的第二指定參數(shù)值,并將這些第二指定參數(shù)值構(gòu)成第二指定參數(shù)值集合。
s1032、從所述第二指定參數(shù)值集合中取出一個(gè)第二指定參數(shù)值。
s1033、將所述緩存的第二指定參數(shù)的參數(shù)值調(diào)整為該第二指定參數(shù)值。
s1034、獲取所述緩存在該第二指定參數(shù)值下的緩存命中率。
本申請一個(gè)實(shí)施例,一般可通過預(yù)設(shè)的計(jì)數(shù)器等統(tǒng)計(jì)單位時(shí)間(或統(tǒng)計(jì)周期)內(nèi)緩存的訪問請求次數(shù)和命中次數(shù),然后通過計(jì)算命中次數(shù)與訪問請求次數(shù)的比值可以得到當(dāng)前統(tǒng)計(jì)周期內(nèi)所述緩存的緩存命中率并保存緩存命中率記錄,從而通過讀取該緩存命中率記錄可以獲取所述緩存在某個(gè)第二指定參數(shù)值下的緩存命中率。
s1035、判斷第二指定參數(shù)值集合中是否存在剩余未設(shè)置的第二指定參數(shù)值。如果存在則執(zhí)行步驟s1032,否則執(zhí)行步驟s1036。以此類推,直至獲取到所述第二指定參數(shù)值集合中各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率為止。
s1036、將所述第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率進(jìn)行排序,以確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值。
s105、將所述緩存的第二指定參數(shù)的參數(shù)值調(diào)整為所述滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值。
在本申請的一個(gè)實(shí)施例中,所述獲取緩存的第一指定參數(shù)取值范圍及第二指定參數(shù)取值范圍,可以是在接收到定時(shí)緩存控制任務(wù)時(shí)執(zhí)行的。所述定時(shí)緩存控制任務(wù)作為一個(gè)定時(shí)驅(qū)動(dòng)消息,用來確定緩存調(diào)整的頻度,每收到到一個(gè)定時(shí)緩存控制任務(wù),就執(zhí)行一次緩存調(diào)整控制。由于緩存的緩存命中率是在單位時(shí)間內(nèi)統(tǒng)計(jì)的,不同的統(tǒng)計(jì)時(shí)段的緩存命中率可能會(huì)有不同,因此,本申請實(shí)施例通過這種定期調(diào)整的策略可以使得緩存的緩存命中率盡可能適應(yīng)這種變化,以利于提高緩存的緩存命中率。
在本申請的另一個(gè)實(shí)施例中,所述獲取緩存的第一指定參數(shù)取值范圍及第二指定參數(shù)取值范圍,可以是在接收到定時(shí)緩存控制任務(wù)時(shí)執(zhí)行的。所述獲取緩存的第一指定參數(shù)取值范圍及第二指定參數(shù)取值范圍,也可以是在接收到定時(shí)緩存控制任務(wù)且系統(tǒng)當(dāng)前的業(yè)務(wù)量低于預(yù)設(shè)閾值時(shí)執(zhí)行的。也就是說,本申請實(shí)施例中,在接收到定時(shí)緩存控制任務(wù)時(shí),還可以進(jìn)一步判斷系統(tǒng)當(dāng)前的業(yè)務(wù)量是否低于預(yù)設(shè)閾值,如果低于預(yù)設(shè)閾值時(shí),則執(zhí)行該定時(shí)緩存控制任務(wù),以盡量避免在業(yè)務(wù)高峰期調(diào)整緩存而可能影響系統(tǒng)的正常運(yùn)行;否則,放棄本次定時(shí)緩存控制任務(wù)。
在以上實(shí)施例中,為提高緩存命中率的準(zhǔn)確性,所述第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率,可以是在相同緩存命中率統(tǒng)計(jì)周期下統(tǒng)計(jì)的。例如都以1小時(shí)為統(tǒng)計(jì)周期。對應(yīng)的,所述第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率,也可以是在相同緩存命中率統(tǒng)計(jì)周期下統(tǒng)計(jì)的。
在本申請的一個(gè)實(shí)施例中,上述的緩存控制方法還可以包括如下步驟:
預(yù)先將指定數(shù)據(jù)對象放入所述緩存,并對所述指定數(shù)據(jù)對象的緩存有效期設(shè)置為永不失效;以map緩存為例,所述對所述指定數(shù)據(jù)對象的緩存有效期設(shè)置為永不失效,可以為對所述指定數(shù)據(jù)對象所對應(yīng)key值的有效期設(shè)置為永不失效。
對應(yīng)的,在收到針對訪問請求的響應(yīng)后,確認(rèn)所述響應(yīng)中的數(shù)據(jù)對象是否屬于所述指定數(shù)據(jù)對象;
如果確認(rèn)所述響應(yīng)中的數(shù)據(jù)對象屬于所述指定數(shù)據(jù)對象,則將所述響應(yīng)中的數(shù)據(jù)對象更新至所述緩存。
在本申請的實(shí)施例中,所述指定數(shù)據(jù)對象包括可預(yù)知的高熱度數(shù)據(jù)對象,在本申請一個(gè)示例性場景下,所述數(shù)據(jù)對象例如可以為網(wǎng)購平臺(tái)(例如京東網(wǎng)購平臺(tái)、亞馬遜網(wǎng)購平臺(tái)等等)上規(guī)劃好準(zhǔn)備催銷的指定的商品或服務(wù)。這樣,提前將可預(yù)知的高熱度數(shù)據(jù)對象(既達(dá)到預(yù)設(shè)信息熱度閾值的數(shù)據(jù)對象)放入緩存可以提高緩存的命中率。當(dāng)然,上述僅是以網(wǎng)購平臺(tái)的購物場景為例進(jìn)行說明,而不構(gòu)成其限制,在本申請其他實(shí)施例中,對于搜索場景、下載場景等其他場景也是適用的。
在本申請的另一個(gè)實(shí)施例中,考慮到非指定數(shù)據(jù)對象也有可能是高熱度數(shù)據(jù)對象,因此,如果確認(rèn)所述響應(yīng)中的數(shù)據(jù)對象不屬于所述指定數(shù)據(jù)對象,則可以進(jìn)一步獲取所述響應(yīng)中的數(shù)據(jù)對象的信息熱度值;
然后判斷所述信息熱度值是否達(dá)到預(yù)設(shè)的信息熱度閾值;所述信息熱度值例如可以為點(diǎn)擊熱度值和/或搜索熱度值等;
如果所述信息熱度值達(dá)到所述信息熱度閾值,則確認(rèn)將所述響應(yīng)中的數(shù)據(jù)對象更新至所述緩存,即確認(rèn)其信息熱度值達(dá)到預(yù)設(shè)信息熱度閾值的數(shù)據(jù)對象為高熱度數(shù)據(jù)對象,因此將其放入緩存中可以提高緩存的命中率;否則,確認(rèn)該數(shù)據(jù)對象為非高熱度數(shù)據(jù)對象,沒必要將其放入緩存。
本申請實(shí)施例中,所述信息熱度值可以是根據(jù)預(yù)先構(gòu)建好的熱度模型計(jì)算得到,所述的熱度模型可以為一種信息熱度計(jì)算算法,所述計(jì)算算法例如通過對熱度影響參數(shù)(訪問次數(shù)等)的加權(quán)求和來求取數(shù)據(jù)對象的信息熱度值。
本申請實(shí)施例通過獲取緩存的第一指定參數(shù)取值范圍的每個(gè)第一指定參數(shù)取值所對應(yīng)的緩存命中率,確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值,然后將緩存的第一指定參數(shù)的第一指定參數(shù)取值調(diào)整為該滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;在此基礎(chǔ)上,又通過獲取緩存的第二指定參數(shù)取值范圍的每個(gè)第二指定參數(shù)取值所對應(yīng)的緩存命中率,確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,然后將緩存的第二指定參數(shù)的第二指定參數(shù)取值調(diào)整為該滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,而第一指定參數(shù)和第二指定參數(shù)都是重要的影響緩存命中率的參數(shù),因此,將其調(diào)整為較優(yōu)值可以提高緩存命中率。
結(jié)合圖4所示,本申請實(shí)施例的緩存控制裝置包括:
取值范圍獲取模塊41,可用于獲取緩存的第一指定參數(shù)取值范圍及第二指定參數(shù)取值范圍;
第一命中率獲取模塊42,可用于獲取所述第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
第一指定參數(shù)調(diào)整模塊43,可用于將所述緩存的第一指定參數(shù)的參數(shù)值調(diào)整為所述滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
第二命中率獲取模塊44,可用于獲取所述第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值;
第二指定參數(shù)調(diào)整模塊45,可用于將所述緩存的第二指定參數(shù)的參數(shù)值調(diào)整為所述滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值。
本申請實(shí)施例的緩存控制裝置與上述圖1所示的緩存控制方法對應(yīng),因此,有關(guān)于本申請實(shí)施例的緩存控制裝置的細(xì)節(jié),請參見上述圖1所示的緩存控制方法的對應(yīng)內(nèi)容。
本申請實(shí)施例通過獲取緩存的第一指定參數(shù)取值范圍的每個(gè)第一指定參數(shù)取值所對應(yīng)的緩存命中率,確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值,然后將緩存的第一指定參數(shù)的第一指定參數(shù)取值調(diào)整為該滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;在此基礎(chǔ)上,又通過獲取緩存的第二指定參數(shù)取值范圍的每個(gè)第二指定參數(shù)取值所對應(yīng)的緩存命中率,確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,然后將緩存的第二指定參數(shù)的第二指定參數(shù)取值調(diào)整為該滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,而第一指定參數(shù)和第二指定參數(shù)都是重要的影響緩存命中率的參數(shù),因此,將其調(diào)整為較優(yōu)值可以提高緩存命中率。
結(jié)合圖5所示,本申請實(shí)施例本申請實(shí)施例的應(yīng)用系統(tǒng)在硬件層面可以包括處理器、內(nèi)部總線、存儲(chǔ)器和內(nèi)存等,當(dāng)然還可能包括其他業(yè)務(wù)所需要的硬件。處理器從存儲(chǔ)器中讀取對應(yīng)的計(jì)算機(jī)程序到內(nèi)存中然后運(yùn)行,在邏輯層面上形成緩存控制裝置。當(dāng)然,除了軟件實(shí)現(xiàn)方式之外,本申請實(shí)施例并不排除其他實(shí)現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說以下處理流程的執(zhí)行主體并不限定于各個(gè)邏輯單元,也可以是硬件或邏輯器件。其中,存儲(chǔ)器,用于存儲(chǔ)緩存控制裝置;所述緩存控制裝置被所述處理器處理時(shí),可執(zhí)行如下步驟:
獲取緩存的第一指定參數(shù)取值范圍及第二指定參數(shù)取值范圍;
獲取所述第一指定參數(shù)取值范圍內(nèi)各個(gè)第一指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
將所述緩存的第一指定參數(shù)的參數(shù)值調(diào)整為所述滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;
獲取所述第二指定參數(shù)取值范圍內(nèi)各個(gè)第二指定參數(shù)值所對應(yīng)的緩存命中率,并確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值;
將所述緩存的第二指定參數(shù)的參數(shù)值調(diào)整為所述滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值。
本申請實(shí)施例中,所述的應(yīng)用系統(tǒng)可以為任何應(yīng)用系統(tǒng),例如提供購物服務(wù)的網(wǎng)購平臺(tái)(比如京東網(wǎng)購平臺(tái)、亞馬遜網(wǎng)購平臺(tái)),提供查詢、下載等服務(wù)的搜索引擎(例如百度搜索、谷歌搜索),提供支付交易服務(wù)第三方支付平臺(tái)等(例如微信支付、百度錢包、paypal、拉卡拉等)。
本申請實(shí)施例通過獲取緩存的第一指定參數(shù)取值范圍的每個(gè)第一指定參數(shù)取值所對應(yīng)的緩存命中率,確定其中滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值,然后將緩存的第一指定參數(shù)的第一指定參數(shù)取值調(diào)整為該滿足第一條件的緩存命中率所對應(yīng)的第一指定參數(shù)值;在此基礎(chǔ)上,又通過獲取緩存的第二指定參數(shù)取值范圍的每個(gè)第二指定參數(shù)取值所對應(yīng)的緩存命中率,確定其中滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,然后將緩存的第二指定參數(shù)的第二指定參數(shù)取值調(diào)整為該滿足第二條件的緩存命中率所對應(yīng)的第二指定參數(shù)值,而第一指定參數(shù)和第二指定參數(shù)都是重要的影響緩存命中率的參數(shù),因此,將其調(diào)整為較優(yōu)值可以提高應(yīng)用系統(tǒng)的緩存命中率。而緩存命中率的提高對于提升應(yīng)用系統(tǒng)的包括響應(yīng)時(shí)間和吞吐量等在內(nèi)的性能十分有利。
雖然上文描述的過程流程包括以特定順序出現(xiàn)的多個(gè)操作,但是,應(yīng)當(dāng)清楚了解,這些過程可以包括更多或更少的操作,這些操作可以順序執(zhí)行或并行執(zhí)行(例如使用并行處理器或多線程環(huán)境)。
在20世紀(jì)90年代,對于一個(gè)技術(shù)的改進(jìn)可以很明顯地區(qū)分是硬件上的改進(jìn)(例如,對二極管、晶體管、開關(guān)等電路結(jié)構(gòu)的改進(jìn))還是軟件上的改進(jìn)(對于方法流程的改進(jìn))。然而,隨著技術(shù)的發(fā)展,當(dāng)今的很多方法流程的改進(jìn)已經(jīng)可以視為硬件電路結(jié)構(gòu)的直接改進(jìn)。設(shè)計(jì)人員幾乎都通過將改進(jìn)的方法流程編程到硬件電路中來得到相應(yīng)的硬件電路結(jié)構(gòu)。因此,不能說一個(gè)方法流程的改進(jìn)就不能用硬件實(shí)體模塊來實(shí)現(xiàn)。例如,可編程邏輯器件(programmablelogicdevice,pld)(例如現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga))就是這樣一種集成電路,其邏輯功能由用戶對器件編程來確定。由設(shè)計(jì)人員自行編程來把一個(gè)數(shù)字系統(tǒng)“集成”在一片pld上,而不需要請芯片制造廠商來設(shè)計(jì)和制作專用的集成電路芯片。而且,如今,取代手工地制作集成電路芯片,這種編程也多半改用“邏輯編譯器(logiccompiler)”軟件來實(shí)現(xiàn),它與程序開發(fā)撰寫時(shí)所用的軟件編譯器相類似,而要編譯之前的原始代碼也得用特定的編程語言來撰寫,此稱之為硬件描述語言(hardwaredescriptionlanguage,hdl),而hdl也并非僅有一種,而是有許多種,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)與verilog。本領(lǐng)域技術(shù)人員也應(yīng)該清楚,只需要將方法流程用上述幾種硬件描述語言稍作邏輯編程并編程到集成電路中,就可以很容易得到實(shí)現(xiàn)該邏輯方法流程的硬件電路。
控制器可以按任何適當(dāng)?shù)姆绞綄?shí)現(xiàn),例如,控制器可以采取例如微處理器或處理器以及存儲(chǔ)可由該(微)處理器執(zhí)行的計(jì)算機(jī)可讀程序代碼(例如軟件或固件)的計(jì)算機(jī)可讀介質(zhì)、邏輯門、開關(guān)、專用集成電路(applicationspecificintegratedcircuit,asic)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存儲(chǔ)器控制器還可以被實(shí)現(xiàn)為存儲(chǔ)器的控制邏輯的一部分。本領(lǐng)域技術(shù)人員也知道,除了以純計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)控制器以外,完全可以通過將方法步驟進(jìn)行邏輯編程來使得控制器以邏輯門、開關(guān)、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實(shí)現(xiàn)相同功能。因此這種控制器可以被認(rèn)為是一種硬件部件,而對其內(nèi)包括的用于實(shí)現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)?;蛘呱踔?,可以將用于實(shí)現(xiàn)各種功能的裝置視為既可以是實(shí)現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。
上述實(shí)施例闡明的系統(tǒng)、裝置、模塊或單元,具體可以由計(jì)算機(jī)芯片或?qū)嶓w實(shí)現(xiàn),或者由具有某種功能的產(chǎn)品來實(shí)現(xiàn)。一種典型的實(shí)現(xiàn)設(shè)備為計(jì)算機(jī)。具體的,計(jì)算機(jī)例如可以為個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、蜂窩電話、相機(jī)電話、智能電話、個(gè)人數(shù)字助理、媒體播放器、導(dǎo)航設(shè)備、電子郵件設(shè)備、游戲控制臺(tái)、平板計(jì)算機(jī)、可穿戴設(shè)備或者這些設(shè)備中的任何設(shè)備的組合。
為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
以上所述僅為本申請的實(shí)施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。