亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

緩存資源文件的url存儲(chǔ)方法及裝置、緩存服務(wù)器的制造方法_2

文檔序號:9217195閱讀:來源:國知局
方法的流程圖;
[0034]圖2是本發(fā)明實(shí)施例中的另一種URL存儲(chǔ)方法的流程圖;
[0035]圖3是本發(fā)明實(shí)施例中的一種URL存儲(chǔ)裝置的結(jié)構(gòu)示意圖;
[0036]圖4是本發(fā)明實(shí)施例中的另一種URL存儲(chǔ)裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0037]現(xiàn)有技術(shù)中,已緩存資源文件的URL在緩存服務(wù)器中的保存方式有通常有三種:
[0038]一種是采用標(biāo)準(zhǔn)庫std:: set〈std:: string〉來保存已緩存資源文件的URL。這種保存方式,將已緩存資源文件的URL完整保存在內(nèi)存中,并能夠保證URL的唯一性。但是,當(dāng)內(nèi)存中的已緩存資源文件數(shù)量較多時(shí),使用這種方法保存URL將會(huì)占用較大的內(nèi)存資源。
[0039]另一種是采用哈希表存儲(chǔ)已緩存資源文件的URL。哈希表是根據(jù)關(guān)鍵字(Keyvalue)而直接訪問在內(nèi)存存儲(chǔ)位置的數(shù)據(jù)結(jié)構(gòu)。它把鍵值通過哈希函數(shù)(又稱散列函數(shù))進(jìn)行計(jì)算后,映射到哈希表(又稱散列表)中的特定位置,以訪問所述位置處所存儲(chǔ)的數(shù)據(jù)。但是,使用哈希表存儲(chǔ)URL,需要在存儲(chǔ)開始時(shí)就預(yù)設(shè)固定大小的內(nèi)存,在存儲(chǔ)的數(shù)據(jù)超過所預(yù)設(shè)的內(nèi)存時(shí),就需要不斷的重構(gòu)哈希表,這將不利于數(shù)據(jù)的動(dòng)態(tài)擴(kuò)展和收縮。
[0040]還有一種是使用布隆過濾器來存儲(chǔ)已緩存資源文件的URL。布隆過濾器是一種基于二進(jìn)制向量和一系列隨機(jī)函數(shù)的數(shù)據(jù)結(jié)構(gòu)。它通過散列函數(shù)將一個(gè)元素映射成位陣列(Bit array)中的點(diǎn)。這樣,通過查看這個(gè)點(diǎn)是不是1,便可以知道它是否存在于集合中。但是,隨著集合中的元素不斷增加,布隆過濾器的誤算率也會(huì)隨之增加,且其不支持元素的刪除,不利于數(shù)據(jù)的動(dòng)態(tài)收縮。
[0041]為解決現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明實(shí)施例采用哈希紅黑樹作為保存緩存資源文件的URL的數(shù)據(jù)結(jié)構(gòu),能夠減少內(nèi)存的占用率,并且易于數(shù)據(jù)的動(dòng)態(tài)擴(kuò)展和收縮。
[0042]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實(shí)施例做詳細(xì)的說明。
[0043]圖1示出了本發(fā)明實(shí)施例中的一種緩存資源文件的URL存儲(chǔ)方法的流程圖。如圖1所示的緩存資源文件的URL存儲(chǔ)方法,包括:
[0044]步驟Sll:收集緩存服務(wù)器內(nèi)存中的已緩存資源文件的URL。
[0045]內(nèi)容分發(fā)網(wǎng)絡(luò),通過在網(wǎng)絡(luò)各處放置節(jié)點(diǎn)服務(wù)器,在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上構(gòu)建一層智能虛擬網(wǎng)絡(luò),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)“邊緣”,使用戶可以就近取得所需的內(nèi)容。而這些“邊緣”,也即是緩存服務(wù)器,用以緩存源站內(nèi)容。引入緩存服務(wù)器后,需要以一定的方式更新過期文件。因此,本發(fā)明的實(shí)施例中,需要定時(shí)收集緩存服務(wù)器上緩存文件的URL,并在系統(tǒng)內(nèi)存存儲(chǔ)所述已緩存文件的URL列表,以便在接收源站發(fā)布的更新通知時(shí),對緩存的文件進(jìn)行遍歷,并清除相應(yīng)URL的緩存內(nèi)容。
[0046]步驟S12:計(jì)算所述收集到的已緩存資源文件的URL的哈希值。
[0047]通常情況下,當(dāng)將所有的已緩存資源文件的URL完整地保存在內(nèi)存中時(shí),一條URL的平均長度為150字節(jié),再加上數(shù)據(jù)結(jié)構(gòu)本身節(jié)點(diǎn)的長度,在已緩存資源文件的URL的數(shù)量眾多的情況下,在內(nèi)存中保存已緩存資源文件的URL將會(huì)占用較大的空間。
[0048]在本發(fā)明的實(shí)施例中,采用哈希紅黑樹來保存已緩存資源文件的URL。所謂哈希紅黑樹,其通過將已緩存資源文件的URL的哈希值,而非URL本身,保存在一紅黑樹的節(jié)點(diǎn)中,從而構(gòu)成所述的哈希紅黑樹。這樣,由于已緩存資源文件的URL的哈希值的長度僅為4字節(jié),相較于一條URL的平均長度——150字節(jié),這將可以減少已緩存資源文件的URL所占用的內(nèi)存空間。
[0049]同時(shí),由于紅黑樹是自平衡二叉查找樹,其具有以下的屬性:(I)其節(jié)點(diǎn)的顏色為紅色或黑色;(2)每個(gè)葉節(jié)點(diǎn)(又稱為NIL節(jié)點(diǎn)或者空節(jié)點(diǎn))是黑色的;(3)每個(gè)紅色節(jié)點(diǎn)的兩個(gè)子節(jié)點(diǎn)都是黑色,即從每個(gè)葉子到根的所有路徑上不能有兩個(gè)連續(xù)的紅色節(jié)點(diǎn);(4)從任一節(jié)點(diǎn)到其每個(gè)葉子的所有路徑都包含相同數(shù)目的黑色節(jié)點(diǎn)。這就決定了從根到葉子的最長的可能路徑不多于最短的可能路徑的兩倍長,結(jié)果是這個(gè)樹大致上是平衡的。因?yàn)閷τ诩t黑樹的操作,比如插入、刪除和查找某個(gè)值,在最壞情況下所用的時(shí)間都與樹的高度成比例。這就允許紅黑樹在任何情況下所進(jìn)行的操作都是高效的,其可以在0(log η)時(shí)間內(nèi)完成數(shù)據(jù)的查找、插入和刪除。因此,采用紅黑樹作為存儲(chǔ)已緩存資源文件的URL的數(shù)據(jù)結(jié)構(gòu),將便于數(shù)據(jù)的動(dòng)態(tài)擴(kuò)展和收縮。
[0050]步驟S13:遍歷預(yù)設(shè)的哈希紅黑樹,將所述收集到的已緩存資源文件的URL的哈希值與所述哈希紅黑樹中存儲(chǔ)的已緩存資源文件的URL的哈希值進(jìn)行比較。
[0051]在本發(fā)明的實(shí)施例中,為了保證存儲(chǔ)在內(nèi)存中的已緩存資源文件的URL的唯一性,在將所收集到的已緩存資源文件的URL的哈希值存儲(chǔ)于所述哈希紅黑樹的節(jié)點(diǎn)中之前,需要對所述哈希紅黑樹進(jìn)行遍歷,以確定待存儲(chǔ)的已緩存資源文件的URL的哈希值是否已經(jīng)存在于所述哈希紅黑樹中。
[0052]步驟S14:當(dāng)所述收集到的已緩存資源文件的URL的哈希值與所述哈希紅黑樹中存儲(chǔ)的已緩存資源文件的URL的哈希值不相等時(shí),將所述收集到的已緩存資源文件的URL的哈希值存儲(chǔ)在到所述哈希紅黑樹中。
[0053]在本發(fā)明的實(shí)施例中,可以將收集到的已緩存資源文件的URL的哈希值與所述哈希樹中已存儲(chǔ)的已緩存資源文件的URL的哈希值進(jìn)行比較,當(dāng)所述收集到的已緩存資源文件的URL的哈希值與所述哈希紅黑樹中存儲(chǔ)的已緩存資源文件的URL的哈希值相等時(shí),則表明收集到的已緩存資源文件的URL已經(jīng)存在與所述哈希紅黑樹中。此時(shí),為了確保所存儲(chǔ)在所述哈希紅黑樹中的數(shù)據(jù)的唯一性,可以丟棄所述收集到的已緩存資源文件的URL。
[0054]反之,當(dāng)所述收集到的已緩存資源文件的URL的哈希值與所述哈希紅黑樹中存儲(chǔ)的已緩存資源文件的URL的哈希值不相等時(shí),則說明所述哈希紅黑中尚未存儲(chǔ)所述收集到的已緩存資源文件的URL相同的URL的哈希值。此時(shí),可以將所述收集到的已緩存資源文件的URL的哈希值存儲(chǔ)于所述哈希紅黑的節(jié)點(diǎn)中,以便在接收源站發(fā)布的更新通知時(shí),遍歷所述哈希紅黑樹,以進(jìn)行緩存文件的更新操作。
[0055]圖2示出了本發(fā)明實(shí)施例中的另一種緩存資源文件URL存儲(chǔ)方法的流程圖。如圖2所示的緩存資源文件的URL存儲(chǔ)方法包括:
[0056]步驟S21:收集緩存服務(wù)器內(nèi)存中的已緩存資源文件的URL。
[0057]在本發(fā)明的實(shí)施例中,可以通過定時(shí)收集的方式來獲取緩存服務(wù)器內(nèi)存中的已緩存資源文件的URL。例如,可以小時(shí)或者天為單位定時(shí)收集所述緩存服務(wù)器內(nèi)存中的已緩存資源文件的URL。
[0058]步驟S22:分別采用第一哈希函數(shù)、第二哈希函數(shù)和第三哈希函數(shù)計(jì)算所述收集到的已緩存資源文件的URL的第一哈希值、第二哈希值和第三哈希值。
[0059]在本發(fā)明實(shí)施例中,所述哈希紅黑樹的構(gòu)建
當(dāng)前第2頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1