緩存管理方法及裝置的制造方法
【專利說明】
【技術領域】
[0001]本發明涉及存儲技術領域,尤其涉及一種緩存管理方法及裝置。
【【背景技術】】
[0002]緩存技術可以在很大程度上避免重復運算和重復10訪問數據庫(簡稱為10訪問),因此可以極大的提升處理速度。目前各種系統會大量的使用緩存,用以提高數據訪問速度。
[0003]在使用緩存時,使用緩存技術的系統會設置緩存的有效時間,例如半小時。在緩存未失效之前,該系統可以命中緩存快速返回命中結果。當緩存失效時,該系統命中緩存失敗,會重新進行運算和10訪問。
[0004]在緩存失效時,可以重建緩存,但是如果在緩存重建完成以前有大量的訪問請求,就會出現大量的重復運算和10訪問,很可能會觸發緩存雪崩,導致使用緩存技術的系統的處理速度顯著下降。
【
【發明內容】
】
[0005]本發明的多個方面提供一種緩存管理方法及裝置,用以提高緩存的處理能力,降低發生緩存雪崩的概率。
[0006]本發明的一方面,提供一種緩存管理方法,包括:
[0007]獲取至少一個緩存中每個緩存的訪問熱度;
[0008]根據所述每個緩存的訪問熱度,從所述至少一個緩存中確定目標緩存;
[0009]在所述目標緩存失效之前,對所述目標緩存進行刷新操作。
[0010]本發明的另一方面,提供一種緩存管理裝置,包括:
[0011]第一獲取模塊,用于獲取至少一個緩存中每個緩存的訪問熱度;
[0012]確定模塊,用于根據所述每個緩存的訪問熱度,從所述至少一個緩存中確定目標緩存;
[0013]刷新模塊,用于在所述目標緩存失效之前,對所述目標緩存進行刷新操作。
[0014]在本發明技術方案中,根據每個緩存的訪問熱度,從至少一個緩存中確定目標緩存,并在目標緩存失效之前,對目標緩存進行刷新操作,這樣相當于對目標緩存進行預刷新,使得目標緩存在被請求時始終是有效的,提供緩存的處理能力,降低發生緩存雪崩的概率。
【【附圖說明】】
[0015]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0016]圖1為本發明一實施例提供的緩存管理方法的流程示意圖;
[0017]圖2為本發明一實施例提供的緩存管理裝置的結構示意圖;
[0018]圖3為本發明另一實施例提供的緩存管理裝置的結構示意圖。
【【具體實施方式】】
[0019]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0020]圖1為本發明一實施例提供的緩存管理方法的流程示意圖。如圖1所示,該方法包括:
[0021 ] 101、獲取至少一個緩存中每個緩存的訪問熱度。
[0022]102、根據每個緩存的訪問熱度,從至少一個緩存中確定目標緩存。
[0023]103、在目標緩存失效之前,對目標緩存進行刷新操作。
[0024]具體的,為了提高緩存的處理能力,降低由于緩存失效引起緩存雪崩的概率,緩存管理裝置采用預刷新緩存的方式,保證緩存在被請求時始終是有效的,避免緩存失效,意味著降低了由緩存失效引起緩存雪崩的概率。
[0025]預刷新緩存的方式是指在緩存失效之前,對緩存進行刷新操作。對緩存進行刷新操作實際上就是緩存重建的過程。緩存重建是指重新運算緩存,獲取緩存最新的數值。例如,緩存重建可以是從數據庫中重新獲取用戶Id(userid)為1的用戶信息,并將重新獲取的用戶信息存儲到緩存中。或者,緩存重建可以是從數據庫中重新獲取訂單IcKorderld)=23232的訂單信息,并將重新獲取的訂單信息存儲到緩存中。
[0026]同時,為了避免對所有緩存均進行預刷新造成刷新成本較高,對系統性能影響較大等問題,緩存管理裝置獲取至少一個緩存中每個緩存的訪問熱度,根據訪問熱度,從至少一個緩存中確定需要進行預刷新的緩存(即目標緩存),之后,在目標緩存失效之前,對目標緩存進行刷新操作。
[0027]上述緩存的訪問熱度一定程度上代表了緩存的優先級。緩存的訪問熱度越大,意味著緩存的優先級越高。該優先級可以體現在緩存被請求的概率方面,或者可以體現在緩存被請求的時長方面等等。
[0028]本實施例基于緩存的訪問熱度,從至少一個緩存中確定需要進行預刷新的目標緩存,并在目標緩存失效之前,對目標緩存進行刷新操作,可以優先保證訪問熱度較大的緩存在被請求時始終保持有效,降低了失效緩存的比例,進而降低了由緩存失效引起緩存雪崩的概率,進而提高使用緩存技術的系統的處理速度。
[0029]在一可選實施方式中,獲取至少一個緩存中每個緩存的訪問熱度的過程包括:根據每個緩存在當前生命周期內的訪問次數和/或在當前生命周期內的最后訪問時間,獲得每個緩存的訪問影響時長;根據每個緩存的訪問影響時長和每個緩存當前生命周期的時長,獲得每個緩存的訪問熱度。
[0030]其中,每個緩存自創建開始是有有效期的,該有效期被稱為生命周期,例如可以是半小時、一小時、四十分鐘等。在實際應用中,緩存的生命周期可由創建時間和失效時間表示,即失效時間與創建時間之差即為該緩存的生命周期。緩存失效后,會被重建,重建后的緩存會開始新的生命周期。
[0031 ] 每個緩存在當前生命周期內的訪問次數是指每個緩存在當前生命周期內被訪問的次數;相應的,每個緩存在當前生命周期內的最后訪問時間是指每個緩存在當前生命周期內最后一次被訪問的時間,例如可能是XXX日XXX時XXX分。
[0032]其中,緩存管理裝置可以根據每個緩存在當前生命周期內的訪問次數和最后訪問時間中的至少一個,獲得每個緩存的訪問影響時長。這里訪問影響時長是指緩存被訪問所影響到的時間長度。
[0033]其中,緩存管理裝置可以僅根據每個緩存在當前生命周期內的訪問次數,獲得訪問影響時長。例如,緩存管理裝置可以將訪問次數做數值處理后的結果作為訪問影響時長,一般來說訪問次數越多,訪問影響時長就越長。
[0034]緩存管理裝置可以僅根據每個緩存當前生命周期內的最后訪問時間,獲得訪問影響時長。例如,緩存管理裝置可以用每個緩存在當前生命周期內的最后訪問時間減輕每個緩存當前生命周期的創建時間,獲得每個緩存的訪問影響時長。
[0035]緩存管理裝置也可以同時根據每個緩存當前生命周期內的訪問次數和最后訪問時間,獲得訪問影響時長。例如,緩存管理裝置可以對每個緩存當前生命周期內的訪問次數和最后訪問時間做數值處理,將處理結果作為訪問影響時長。
[0036]基于上述,緩存管理裝置可以用每個緩存的訪問影響時長與每個緩存的當前生命周期的時長相除,以獲得每個緩存的訪問熱度,該訪問熱度實際上是指訪問緩存產生的影響時間在緩存的生命周期中的占比。
[0037]值得說明的是,在緩存管理裝置用每個緩存在當前生命周期內的最后訪問時間減輕每個緩存當前生命周期的創建時間,獲得每個緩存的訪問影響時長的情況下,每個緩存的訪問熱度會