一種緩存數(shù)據(jù)處理方法、裝置和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種緩存數(shù)據(jù)處理方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]在線廣告業(yè)務(wù)是在大數(shù)據(jù)的背景下應(yīng)運(yùn)而生的新興業(yè)務(wù),是大數(shù)據(jù)時代數(shù)據(jù)變現(xiàn)的重要途徑之一。精準(zhǔn)、海量和實(shí)時是在線廣告業(yè)務(wù)的三大要素,而要保證精準(zhǔn),計算過程中所使用數(shù)據(jù)的準(zhǔn)確與可靠至關(guān)重要。
[0003]在實(shí)時廣告業(yè)務(wù)的計算請求過程中,會涉及到大量的數(shù)據(jù)查詢,包括用戶畫像和廣告信息等,由于數(shù)據(jù)量很大,目前的數(shù)據(jù)都存放于后端的分布式κν(關(guān)鍵字/值,Key/Value)存儲引擎中。為了保證上述的高實(shí)時性,推薦系統(tǒng)會在本地設(shè)置緩存模塊,將從KV存儲引擎中查詢回來的數(shù)據(jù)緩存起來,以提高數(shù)據(jù)查詢速度。然而,由于本地緩存的存儲空間有限,不可能將所有數(shù)據(jù)都保存在本地,因此設(shè)有一個緩存閥值,當(dāng)緩存的數(shù)據(jù)到達(dá)該值,就使用某種淘汰策略進(jìn)行數(shù)據(jù)淘汰。目前推薦系統(tǒng)的緩存使用“超時淘汰”機(jī)制,只針對各種數(shù)據(jù)的更新頻率,在超時時間上作出區(qū)分。數(shù)據(jù)寫入時,保存在對應(yīng)的超時鏈表上,當(dāng)緩存寫滿,則優(yōu)先淘汰超時節(jié)點(diǎn),若沒有超時節(jié)點(diǎn),則在每個超時鏈上強(qiáng)制刪除一些以釋放空間。
[0004]在對現(xiàn)有技術(shù)的研究和實(shí)踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),根據(jù)現(xiàn)有的淘汰方案,在緩存已滿的情況下,每次的讀寫請求都會觸發(fā)數(shù)據(jù)超時淘汰操作,而沒有超時節(jié)點(diǎn)時,則在每個超時鏈上強(qiáng)制刪除一些節(jié)點(diǎn),因此,可能會誤刪除一些重要數(shù)據(jù),使得無法為后續(xù)的計算提供準(zhǔn)確的數(shù)據(jù),影響計算效果,最終導(dǎo)致投放精準(zhǔn)性的降低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種緩存數(shù)據(jù)處理方法、裝置和系統(tǒng),可以為不同數(shù)據(jù)提供不同級別的保護(hù),改善計算效果,提高投放精準(zhǔn)性。
[0006]本發(fā)明實(shí)施例提供一種緩存數(shù)據(jù)處理方法,包括:
[0007]對緩存的存儲空間進(jìn)行監(jiān)控;
[0008]若根據(jù)監(jiān)控結(jié)果確定緩存的已使用空間超過預(yù)置閾值,則確定所述緩存中是否存在超時的數(shù)據(jù);
[0009]若存在超時的數(shù)據(jù),則刪除所述超時的數(shù)據(jù);
[0010]若不存在超時的數(shù)據(jù),則根據(jù)數(shù)據(jù)優(yōu)先級從低到高的順序依次刪除數(shù)據(jù),直至所述緩存的已使用空間低于所述預(yù)置閾值。
[0011 ] 相應(yīng)的,本發(fā)明實(shí)施例還提供一種緩存數(shù)據(jù)處理裝置,其特征在于,包括:
[0012]監(jiān)控單元,用于對緩存的存儲空間進(jìn)行監(jiān)控;
[0013]判斷單元,用于在根據(jù)監(jiān)控結(jié)果確定緩存的已使用空間超過預(yù)置閾值時,確定所述緩存中是否存在超時的數(shù)據(jù);
[0014]第一處理單元,用于在判斷單元確定存在超時的數(shù)據(jù)時,刪除所述超時的數(shù)據(jù);
[0015]第二處理單元,用于在判斷單元確定不存在超時的數(shù)據(jù)時,根據(jù)數(shù)據(jù)優(yōu)先級從低到高的順序依次刪除數(shù)據(jù),直至所述緩存的已使用空間低于所述預(yù)置閾值。
[0016]此外,本發(fā)明實(shí)施例還提供一種信息推薦系統(tǒng),包括本發(fā)明實(shí)施例所提供的任一種緩存數(shù)據(jù)處理裝置。
[0017]本發(fā)明實(shí)施例采用對緩存的存儲空間進(jìn)行監(jiān)控,若根據(jù)監(jiān)控結(jié)果確定緩存的已使用空間超過預(yù)置閾值,則確定該緩存中是否存在超時的數(shù)據(jù),若存在超時的數(shù)據(jù),則刪除該超時的數(shù)據(jù),反之,若不存在超時的數(shù)據(jù),則根據(jù)數(shù)據(jù)優(yōu)先級從低到高的順序依次刪除數(shù)據(jù),直至該緩存的已使用空間低于該預(yù)置閾值;由于該方案在不存在超時數(shù)據(jù)的情況下,可以按照數(shù)據(jù)優(yōu)先級的高低對數(shù)據(jù)進(jìn)行刪除,以釋放緩存的存儲空間,因此,相對于現(xiàn)有技術(shù)只能隨機(jī)刪除數(shù)據(jù)的方案而言,大大提高了操作的靈活性,可以為不同數(shù)據(jù)提供不同級別的保護(hù),從而避免重要數(shù)據(jù)被誤刪,有利于為后續(xù)的計算提供準(zhǔn)確的數(shù)據(jù),可以改善計算效果,提高投放精準(zhǔn)性。
【附圖說明】
[0018]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1a是本發(fā)明實(shí)施例提供的信息推薦系統(tǒng)的示意圖;
[0020]圖1b是本發(fā)明實(shí)施例提供的緩存數(shù)據(jù)處理方法的流程圖;
[0021]圖2a是本發(fā)明實(shí)施例提供的緩存數(shù)據(jù)處理方法的另一流程圖;
[0022]圖2b是本發(fā)明實(shí)施例提供的緩存數(shù)據(jù)處理方法中刪除操作的示意圖;
[0023]圖3是本發(fā)明實(shí)施例提供的緩存數(shù)據(jù)處理方法的又一流程圖;
[0024]圖4a是本發(fā)明實(shí)施例提供的緩存數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
[0025]圖4b是本發(fā)明實(shí)施例提供的緩存數(shù)據(jù)處理裝置的另一結(jié)構(gòu)示意圖;
[0026]圖4c是本發(fā)明實(shí)施例提供的緩存數(shù)據(jù)處理裝置的又一結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0028]本發(fā)明實(shí)施例提供一種緩存數(shù)據(jù)處理方法、裝置和系統(tǒng)。
[0029]如圖1a所示,該信息推薦系統(tǒng)可以包括數(shù)據(jù)接收模塊、緩存模塊、計算模塊和信息投放模塊;以廣告為例,其中,數(shù)據(jù)接收模塊主要用于獲取需要進(jìn)行投放的廣告數(shù)據(jù),然后將這些廣告數(shù)據(jù)緩存在緩存模塊中,由計算模塊從緩存模塊中獲取所需的廣告數(shù)據(jù)進(jìn)行計算,然后再由信息投放模塊根據(jù)計算結(jié)果進(jìn)行廣告投放。由于緩存模塊中的存儲空間是有限的,因此,在已使用空間超過預(yù)置閾值時,對空間進(jìn)行釋放是十分必要的。
[0030]本發(fā)明實(shí)施例所提供的任一種緩存數(shù)據(jù)處理裝置,正是可以集成在該緩存模塊中,主要用于對緩存的存儲空間進(jìn)行監(jiān)控,在確定緩存的已使用空間超過預(yù)置閾值時,確定該緩存中是否存在超時的數(shù)據(jù),若存在超時的數(shù)據(jù),則刪除該超時的數(shù)據(jù);若不存在超時的數(shù)據(jù),則根據(jù)數(shù)據(jù)優(yōu)先級從低到高的順序依次刪除數(shù)據(jù),直至該緩存的已使用空間低于該預(yù)置閾值,從而實(shí)現(xiàn)對緩存空間的釋放。
[0031]當(dāng)然,該緩存數(shù)據(jù)處理裝置也可以以獨(dú)立的實(shí)體存在,另外,需說明的是,在該信息推薦系統(tǒng)中,還可以包括其他的模塊(在圖1a中并未示出),在此不再列舉。
[0032]以下將分別進(jìn)行詳細(xì)說明。
[0033]實(shí)施例一、
[0034]本實(shí)施例中將從緩存數(shù)據(jù)處理裝置的角度進(jìn)行描述,該緩存數(shù)據(jù)處理裝置具體可以集成在信息推薦系統(tǒng)的服務(wù)器或其他設(shè)備中。
[0035]—種緩存數(shù)據(jù)處理方法,包括:對緩存的存儲空間進(jìn)行監(jiān)控;若根據(jù)監(jiān)控結(jié)果確定緩存的已使用空間超過預(yù)置閾值,則確定該緩存中是否存在超時的數(shù)據(jù);若存在超時的數(shù)據(jù),則刪除該超時的數(shù)據(jù);若不存在超時的數(shù)據(jù),則根據(jù)數(shù)據(jù)優(yōu)先級從低到高的順序依次刪除數(shù)據(jù),直至該緩存的已使用空間低于該預(yù)置閾值。
[0036]如圖1b所示,該緩存數(shù)據(jù)處理方法的具體流程可以如下:
[0037]101、對緩存的存儲空間進(jìn)行監(jiān)控。
[0038]例如,具體可以啟動并調(diào)用監(jiān)控進(jìn)程,利用該監(jiān)控進(jìn)程對緩存的存儲空間進(jìn)行監(jiān)控,等等。其中,監(jiān)控的方式可以由多種,可以根據(jù)實(shí)際應(yīng)用的需求而定,在此不再贅述。
[0039]102、若根據(jù)監(jiān)控結(jié)果確定緩存的已使用空間超過預(yù)置閾值,則確定該緩存中是否存在超時的數(shù)據(jù);若存在超時的數(shù)據(jù),則刪除該超時的數(shù)據(jù);若不存在超時的數(shù)據(jù),則根據(jù)數(shù)據(jù)優(yōu)先級從低到高的順序依次刪除數(shù)據(jù),直至該緩存的已使用空間低于該預(yù)置閾值。
[0040]其中,該預(yù)置閾值可以根據(jù)實(shí)際應(yīng)用的需求進(jìn)行設(shè)置,在此不再贅述。
[0041]其中,根據(jù)存儲方式的不同,步驟102的處理方式也會有所區(qū)別,例如,具體可以采用如下任意一種方式:
[0042](I)第一種方式;
[0043]查找超時鏈表,以確定是否存在超時的數(shù)據(jù)節(jié)點(diǎn);
[0044]若存在超時的數(shù)據(jù)節(jié)點(diǎn),則刪除該超時鏈表中超時的數(shù)據(jù)節(jié)點(diǎn);
[0045]若不存在超時的數(shù)據(jù)節(jié)點(diǎn),則查找優(yōu)先級鏈表,按照數(shù)據(jù)優(yōu)先級從低到高的順序依次刪除該優(yōu)先級鏈表中的數(shù)據(jù)節(jié)點(diǎn),直至該緩存的已使用空間低于該預(yù)置閾值。
[0046]其中,優(yōu)先級鏈表可以在系統(tǒng)啟動時,根據(jù)配置的數(shù)據(jù)優(yōu)先級信息來進(jìn)行創(chuàng)建。即在步驟“對緩存的存儲空間進(jìn)行監(jiān)控”之前,該緩存數(shù)據(jù)處理方法還可以包括:
[0047]獲取配置的數(shù)據(jù)優(yōu)先級信息,該數(shù)據(jù)優(yōu)先級信息包括多個優(yōu)先級級別,根據(jù)該數(shù)據(jù)優(yōu)先級信息創(chuàng)建優(yōu)先級鏈表,使得每一個優(yōu)先級級別對應(yīng)一個優(yōu)先級鏈表。
[0048]例如,如果需要配置“O?9”十個優(yōu)先級別,則可以在數(shù)據(jù)優(yōu)先級信息中指示“O?9”十個優(yōu)先級別,這樣,該緩存數(shù)據(jù)處理裝置獲取到該數(shù)據(jù)優(yōu)先級信息后,便可以創(chuàng)建10個優(yōu)先級鏈表,使得每一個優(yōu)先級級別對應(yīng)一個優(yōu)先級鏈表,比如,所創(chuàng)建的優(yōu)先級鏈表可以包