一種緩存數(shù)據(jù)處理方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及緩存數(shù)據(jù)管理領域,尤其涉及一種緩存數(shù)據(jù)處理方法及裝置。
【背景技術】
[0002] Redis出現(xiàn)之前,數(shù)據(jù)都直接緩存至內存;緩存數(shù)據(jù)替換、緩存數(shù)據(jù)清除等操作都 需要用戶程序自己管理即通過專門的緩存管理模塊對緩存數(shù)據(jù)進行管理,處理起來比較麻 煩,嚴重影響了用戶體驗。
[0003] 隨著具有強大數(shù)據(jù)管理功能的Redis出現(xiàn),使得對緩存數(shù)據(jù)管理能力得到了提 高,其優(yōu)越性能、高速讀取速度越來越受到各種應用程序青睞,多數(shù)傳統(tǒng)數(shù)據(jù)庫訪問程序, 也把Redis作為緩存端提高數(shù)據(jù)訪問效率。
[0004] 然而Redis作為內存數(shù)據(jù)庫,其容量不能達到傳統(tǒng)數(shù)據(jù)庫的容量,因此如何在有 限空間內,盡可能提高數(shù)據(jù)命中率來提高數(shù)據(jù)訪問效率,是亟需解決的技術問題。
【發(fā)明內容】
[0005] 本發(fā)明提供一種緩存數(shù)據(jù)處理方法及裝置,以解決上述問題。
[0006] 本發(fā)明提供一種緩存數(shù)據(jù)處理方法。上述方法包括以下步驟:
[0007] 獲取數(shù)據(jù)塊特征值并與預設閾值進行比較并根據(jù)比較結果,對數(shù)據(jù)塊進行處理;
[0008] 根據(jù)獲取的訪問緩存數(shù)據(jù)次數(shù)、第一生存時間閾值、第二生存時間閾值,確定對應 的緩存數(shù)據(jù)處理策略。
[0009] 本發(fā)明還提供一種緩存數(shù)據(jù)處理裝置,包括獲取模塊、比較處理模塊、緩存數(shù)據(jù)處 理模塊;其中,所述獲取模塊通過所述比較處理模塊與所述緩存數(shù)據(jù)處理模塊相連;
[0010] 所述獲取模塊,用于獲取數(shù)據(jù)塊特征值并將所述數(shù)據(jù)塊特征值發(fā)送至所述比較處 理模塊;
[0011] 所述比較處理模塊,用于將數(shù)據(jù)塊特征值與預設閾值進行比較并根據(jù)比較結果, 對數(shù)據(jù)塊進行處理并將處理結果發(fā)送至所述緩存數(shù)據(jù)處理模塊;
[0012] 所述緩存數(shù)據(jù)處理模塊,用于根據(jù)獲取的訪問緩存數(shù)據(jù)次數(shù)、第一生存時間閾值、 第二生存時間閾值,確定對應的緩存數(shù)據(jù)處理策略。
[0013] 通過以下方案:獲取數(shù)據(jù)塊特征值并與預設閾值進行比較并根據(jù)比較結果,對數(shù) 據(jù)塊進行處理;根據(jù)獲取的訪問緩存數(shù)據(jù)次數(shù)、第一生存時間閾值、第二生存時間閾值,確 定對應的緩存數(shù)據(jù)處理策略;實現(xiàn)了在緩存數(shù)據(jù)運行時,由訪問頻率自行決定生存時間,使 得緩存數(shù)據(jù)的生存時間更加合理,不經(jīng)常訪問的數(shù)據(jù)調出緩存,節(jié)省空間;經(jīng)常訪問的數(shù)據(jù) 常駐緩存,提高命中率,從而加快訪問速度,提高訪問效率。
[0014] 通過以下方案:若在第一生存時間閾值內,所述第一緩存數(shù)據(jù)被訪問,則將所述第 一緩存數(shù)據(jù)的生存時間重新置為第一生存時間閾值;若第一生存時間閾值到達時,所述第 一緩存數(shù)據(jù)未被訪問,則將所述第一緩存數(shù)據(jù)刪除;采用上述方案使得對于訪問比較頻繁 的第一緩存數(shù)據(jù),由于訪問頻率高,在第一生存時間閾值到達前被訪問,而不至于被清除; 對于訪問頻率低的第一緩存數(shù)據(jù),則會因為第一生存時間閾值到達時尚未被訪問而被自動 清除;采用上述方案使得對于突發(fā)性訪問頻率增加的數(shù)據(jù)更加有效,提高了訪問效率,大大 提高了用戶體驗。
【附圖說明】
[0015] 此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
[0016] 圖1所示為本發(fā)明實施例1的緩存數(shù)據(jù)處理方法流程圖;
[0017] 圖2所示為本發(fā)明實施例2的緩存數(shù)據(jù)處理裝置結構圖。
【具體實施方式】
[0018] 下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0019] 圖1所示為本發(fā)明實施例1的緩存數(shù)據(jù)處理方法流程圖,包括以下步驟:
[0020] 步驟101 :獲取數(shù)據(jù)塊特征值并與預設閾值進行比較并根據(jù)比較結果,對數(shù)據(jù)塊 進行處理;
[0021] 其中,預設閾值根據(jù)實際情況可以靈活設定,例如:512B,在此不用于限定本實施 例保護范圍;數(shù)據(jù)塊特征值是指數(shù)據(jù)塊大小值。
[0022] 進一步地,獲取數(shù)據(jù)塊特征值并與預設閾值進行比較并根據(jù)比較結果,對數(shù)據(jù)塊 進行處理的過程為:
[0023] 若數(shù)據(jù)塊大小值小于預設閾值,則將數(shù)據(jù)塊存至預設內存數(shù)據(jù)庫,形成第一緩存 數(shù)據(jù),并設定所述第一緩存數(shù)據(jù)的第一生存時間閾值。
[0024] 進一步地,若數(shù)據(jù)塊大小值小于預設閾值,則將數(shù)據(jù)塊存至預設內存數(shù)據(jù)庫,形成 第一緩存數(shù)據(jù),并設定所述第一緩存數(shù)據(jù)的第一生存時間閾值的過程為:
[0025] 若數(shù)據(jù)塊大小值小于預設閾值,則將數(shù)據(jù)塊存至預設內存數(shù)據(jù)庫,形成第一緩存 數(shù)據(jù),采用設置時間命令,對所述第一緩存數(shù)據(jù)進行第一生存時間閾值設定。
[0026] 其中,根據(jù)自身程序的本身環(huán)境(因為環(huán)境不同,不能統(tǒng)一而定,比如:有的網(wǎng)站 平均訪問率高,平均1秒就有一人訪問,有的網(wǎng)站可能10秒才有人訪問一次),自身程序歷 史訪問記錄的平均間隔,設定第一生存時間閾值(T1)。
[0027] 進一步地,獲取數(shù)據(jù)塊特征值并與預設閾值進行比較并根據(jù)比較結果,對數(shù)據(jù)塊 進行處理的過程為:
[0028] 若數(shù)據(jù)塊大小值大于或等于預設閾值,則對數(shù)據(jù)塊增加1字節(jié)空間用于對數(shù)據(jù)訪 問次數(shù)進行記錄,并將增加字節(jié)后的數(shù)據(jù)塊存入預設內存庫,形成第二緩存數(shù)據(jù)并對所述 第二緩存數(shù)據(jù)設定第二生存時間閾值。
[0029] 其中,所述預設內存數(shù)據(jù)庫是指Redis內存數(shù)據(jù)庫。
[0030] 其中,對于數(shù)據(jù)塊大小值大于或等于預設閾值,對數(shù)據(jù)塊增加1字節(jié)空間用于記 錄數(shù)據(jù)訪問次數(shù),并將初始訪問次數(shù),置為〇。
[0031] 其中,第二生存時間閾值為第一生存時間閾值的整數(shù)倍,例如:2倍第一生存時間 閾值(2T)、3倍第一生存時間閾值(3T)、4倍第一生存時間閾值(4T)、5倍第一生存時間閾 值(5T)、6倍第一生存時間閾值(6T)、7倍第一生存時間閾值(7T)、8倍第一生存時間閾值 (8Τ)〇
[0032] 步驟102 :根據(jù)獲取的訪問緩存數(shù)據(jù)次數(shù)、第一生存時間閾值、第二生存時間閾 值,確定對應的緩存數(shù)據(jù)處理策略。
[0033] 進一步地,根據(jù)獲取的訪問緩存數(shù)據(jù)次數(shù)、第一生存時間閾值、第二生存時間閾 值,確定對應的緩存數(shù)據(jù)處理策略的過程為:
[0034] 若在第一生存時間閾值內,所述第一緩存數(shù)據(jù)被訪問,則將所述第一緩存數(shù)據(jù)的 生存時間重新置為第一生存時間閾值;若第一生存時間閾值到達時,所述第一緩存數(shù)據(jù)未 被訪問,則將所述第一緩存數(shù)據(jù)刪除。
[0035] 采用上述方案使得對于訪問比較頻繁的第一緩存數(shù)據(jù),由于訪問頻率高,在第一 生存時間閾值到達前被訪問,而不至于被清除;對于訪問頻率低的第一緩存數(shù)據(jù),則會因為 第一生存時間閾值到達時尚未被訪問而被自動清除。
[0036] 采用上述方案使得對于突發(fā)性訪問頻率增加的數(shù)據(jù)更加有效,比如:可能數(shù)據(jù)訪 問突發(fā)性比較高,在訪問高峰期數(shù)據(jù)會一直不斷緩存在Redis內存數(shù)據(jù)庫,而訪問低谷期 則會被清除,并不會長期存儲,節(jié)省了 Redis內存數(shù)據(jù)庫空間。
[0037] 進一步地,根據(jù)獲取的訪問緩存數(shù)據(jù)次數(shù)、第一生存時間閾值、第二生存時間閾 值,確定對應的緩存數(shù)據(jù)處理策略的過程為:
[0038] 每訪問第二緩存數(shù)據(jù)1次,則訪問次數(shù)加1,若在第二生存時間閾值內,訪問次數(shù) 大于或等于預設最大次數(shù),則將所述第二緩存數(shù)據(jù)的生存時間重新置為第二生存時間閾值 且將訪問次數(shù)重新置為0。
[0039] 進一步地,根據(jù)獲取的訪問緩存數(shù)據(jù)次數(shù)、第一生存時間閾值、第二生存時間閾 值,確定對應的緩存數(shù)據(jù)處理策略的過程為:
[0040] 每訪問第二緩存數(shù)據(jù)1次,則訪問次數(shù)加1,若在第二生存時間閾值內訪問次數(shù)小 于預設最大次數(shù),則將所述第