緩存資源文件的url存儲方法及裝置、緩存服務器的制造方法
【技術領域】
[0001]本發(fā)明涉及緩存文件更新技術領域,特別是涉及一種緩存資源文件的統(tǒng)一資源定位符(Uniform Resource Locator, URL)存儲方法及裝置、緩存服務器。
【背景技術】
[0002]內容分發(fā)網(wǎng)絡(Content Delivery Network, Q)N),通過在網(wǎng)絡各處放置節(jié)點服務器,在現(xiàn)有的互聯(lián)網(wǎng)基礎之上構建一層智能虛擬網(wǎng)絡,將網(wǎng)站的內容發(fā)布到最接近用戶的網(wǎng)絡“邊緣”,使用戶可以就近取得所需的內容。而這些“邊緣”,也即是緩存服務器,用以緩存源站內容。
[0003]引入緩存服務器后,緩存資源文件需要回源驗證,以更新過期文件。這就需要定時收集緩存服務器上緩存資源文件的URL,并在系統(tǒng)內存中保存已緩存資源文件的URL列表,以便在接收源站發(fā)布的更新通知時,對緩存的文件進行遍歷,并清除相應URL的緩存內容。
[0004]現(xiàn)有技術中,URL列表在內存中的保存方式一般有三種,分別為使用標準庫、哈希表和布隆過濾器來保存URL列表。但是,現(xiàn)有技術中的這三種URL列表存儲方法存在著或者內存占用率大,或者動態(tài)擴展和收縮困難的缺點。
【發(fā)明內容】
[0005]本發(fā)明實施例解決的問題是如何在緩存服務器的內存中保存已緩存資源文件的URL,以節(jié)約內存,并且易于動態(tài)擴展和收縮。
[0006]為解決上述問題,本發(fā)明實施例提供了一種緩存資源文件的URL存儲方法,所述方法包括:
[0007]收集緩存服務器內存中的已緩存資源文件的URL ;
[0008]計算所述收集到的已緩存資源文件的URL的哈希值;
[0009]遍歷預設的哈希紅黑樹,將所述收集到的已緩存資源文件的URL的哈希值與所述哈希紅黑樹節(jié)點中存儲的已緩存資源文件的URL的哈希值進行比較;
[0010]當所述收集到的已緩存資源文件的URL的哈希值與所述哈希紅黑樹中存儲的已緩存資源文件的URL的哈希值不相等時,將所述收集到的已緩存資源文件的URL的哈希值存儲在所述哈希紅黑樹的節(jié)點中。
[0011]可選地,所述哈希值包括分別采用第一哈希函數(shù)、第二哈希函數(shù)和第三哈希函數(shù)計算得到的第一哈希值、第二哈希值和第三哈希值。
[0012]可選地,所述第一哈希函數(shù)、所述第二哈希函數(shù)和所述第三哈希函數(shù)為不同的哈希函數(shù)。
[0013]可選地,所述當所述收集到的已緩存資源文件的URL的哈希值與所述哈希紅黑樹中存儲的已緩存資源文件的URL的哈希值不相等時,將所述收集到的已緩存資源文件的URL的哈希值保存在所述哈希紅黑樹的節(jié)點中,包括:當所述收集到的已緩存資源文件的URL的第一哈希值、第二哈希值和第三哈希值分別與所述哈希紅黑樹中存儲的已緩存資源文件的URL的第一哈希值、第二哈希值和第三哈希值中至少有一組值不相等時,則將所述收集到的已緩存資源文件的URL的第一哈希值、第二哈希值和第三哈希值保存在所述哈希紅黑樹的節(jié)點中。
[0014]本發(fā)明實施例還提供了一種緩存資源文件的URL存儲裝置,所述裝置包括:
[0015]收集單元,適于收集緩存服務器內存中的已緩存資源文件的URL ;
[0016]計算單元,適于計算所述收集單元所收集到的已緩存資源文件的URL的哈希值;
[0017]比較單元,適于遍歷預設的哈希紅黑樹,將所述計算單元所計算得到的已緩存資源文件的URL的哈希值與所述哈希紅黑樹中存儲的已緩存資源文件的URL的哈希值進行比較;
[0018]存儲單元,適于當所述收集到的已緩存資源文件的URL的哈希值與所述哈希紅黑樹中存儲的已緩存資源文件的URL的哈希值不相等時,將所述收集到的已緩存資源文件的URL的哈希值存儲在所述哈希紅黑樹的節(jié)點中。
[0019]可選地,所述計算單元包括第一計算子單元、第二計算子單元和第三計算子單元,所述比較單元包括第一比較子單元,第二比較子單元和第三比較子單元;其中,
[0020]所述第一計算子單元,適于采用第一哈希函數(shù)計算所述收集到的已緩存資源文件的URL的第一哈希值;
[0021]所述第二計算子單元,適于采用第二哈希函數(shù)計算所述收集到的已緩存資源文件的URL的第二哈希值;
[0022]所述第三計算子單元,適于采用第三哈希函數(shù)計算所述收集到的已緩存資源文件的URL的第三哈希值;
[0023]所述第一比較子單元,適于將所述第一計算子單元計算得到的所述收集到的已緩存資源文件的URL的所述第一哈希值與所述哈希紅黑樹中已存儲的已緩存資源文件的URL的第一哈希值進行比較;
[0024]所述第二比較子單元,適于將所述第二計算子單元計算得到的所述收集到的已緩存資源文件的URL的所述第二哈希值與所述哈希紅黑樹中已存儲的已緩存資源文件的URL的第二哈希值進行比較;
[0025]所述第三比較子單元,適于將所述第三計算子單元計算得到的所述收集到的已緩存資源文件的URL的所述第三哈希值與所述哈希紅黑樹中已存儲的已緩存資源文件的URL的第三哈希值進行比較。
[0026]可選地,所述第一哈希函數(shù)、所述第二哈希函數(shù)和所述第三哈希函數(shù)為不同的哈希函數(shù)。
[0027]可選地,所述存儲單元包括存儲子單元,所述存儲子單元適于當所述第一比較子單元、第二比較子單元和第三比較子單元分別將所述收集到的已緩存資源文件的URL的第一哈希值、第二哈希值和第三哈希值分別與所述哈希紅黑樹中已存儲的已緩存資源文件的URL的第一哈希值、第二哈希值和第三哈希值進行比較,且比較結果中至少有一組值不相等時,將所述所收集到的已緩存資源文件的URL的所述第一哈希值、所述第二哈希值和所述第三哈希值存儲于所述哈希紅黑樹的節(jié)點中。
[0028]本發(fā)明實施例還提供了一種緩存服務器,包括上述的緩存資源文件的URL存儲裝置。
[0029]本發(fā)明實施例還提供了一種緩存服務器,所述服務器包括上述的緩存資源文件的URL存儲裝置。
[0030]與現(xiàn)有技術相比,本發(fā)明的技術方案具有以下的優(yōu)點:
[0031]上述的技術方案,由于在紅黑樹中的節(jié)點中僅存儲已緩存資源文件的URL的哈希值,而非URL本身,因此可以減少已緩存資源文件的URL在內存中的占用率。并且,由于紅黑樹是一棵節(jié)點為黑色或者紅色的自平衡二叉查找樹,其可以實現(xiàn)數(shù)據(jù)的查找、插入和刪除操作,并可將上述操作的時間控制在0(log η) (η為所述紅黑樹元素的數(shù)目)的時間內,方便高效。因此,采用紅黑樹的數(shù)據(jù)結構存儲已緩存資源文件的URL的哈希值,可方便高效地實現(xiàn)數(shù)據(jù)的動態(tài)擴展和收縮。
[0032]進一步地,由于采用三個哈希函數(shù)分別計算URL的哈希值,并將三個哈希值同時保存在哈希紅黑樹中相應的同一節(jié)點中,可以有效避免哈希沖突,便于數(shù)據(jù)的存儲。
【附圖說明】
[0033]圖1是本發(fā)明實施例中的一種URL存儲