專利名稱:緩存文件的目錄刷新方法及采用該方法的代理緩存服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別是指一種緩存文件的目錄刷新方法及采用該方法的代理緩存服務(wù)器。
背景技術(shù):
在服務(wù)移動反向代理業(yè)務(wù)時(shí),用戶訪問的網(wǎng)站數(shù)量會非常龐大,進(jìn)而導(dǎo)致需要緩存的統(tǒng)一資源定位符(URL, Uniform/Universal Resource Locator)數(shù)量更加龐大,達(dá)到數(shù) 千萬的級別。而在中國,移動業(yè)務(wù)對于內(nèi)容的管理要求非常高。經(jīng)常會有限期刪除某個(gè)網(wǎng)站或者某個(gè)目錄的要求。因此,對于服務(wù)移動反向代理的服務(wù)器來說,需要一個(gè)穩(wěn)定、快速的目錄刷新功能(即找到屬于某一個(gè)目錄的所有統(tǒng)一資源定位符,并全部刪除)。代理緩存服務(wù)器在保存統(tǒng)一資源定位符與緩存文件的對應(yīng)關(guān)系時(shí),通常都不會按照統(tǒng)一資源定位符的本身的目錄結(jié)構(gòu)來保存,而是按照這個(gè)網(wǎng)頁緩存(web cache)軟件本身的規(guī)則來將文件保存到不同的目錄中。但是這樣做會造成一個(gè)后果,就是如果要進(jìn)行目錄刷新就會非常困難。必須遍歷所有已經(jīng)緩存的文件,找到其統(tǒng)一資源定位符中包含的需要刷新的目錄。通常代理服務(wù)器緩存的統(tǒng)一資源定位符數(shù)量都在千萬級別,這樣做對服務(wù)器的性能有非常嚴(yán)重的影響。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提出一種緩存文件的目錄刷新方法及采用該方法的代理緩存服務(wù)器,能夠有效刷新緩存文件目錄?;谏鲜瞿康谋景l(fā)明提供的一種緩存文件的目錄刷新方法,包括對日志文件夾中的緩存文件進(jìn)行排序;將排序完成的日志文件夾合并到數(shù)據(jù)庫文件夾;將所述數(shù)據(jù)庫文件夾平均分為N個(gè)子數(shù)據(jù)庫,從第I子數(shù)據(jù)庫到第N-I數(shù)據(jù)庫中各抽取第i個(gè)緩存文件作為緩存文件樣本,將所有緩存文件樣本保存在索引文件夾里;在索引文件夾中找出需要刷新的目錄中的目標(biāo)緩存文件,并找到該目標(biāo)緩存文件在數(shù)據(jù)庫文件夾中的所處位置;從該目標(biāo)緩存文件在數(shù)據(jù)庫文件夾中的所處位置起,遍歷數(shù)據(jù)庫文件夾,當(dāng)緩存文件符合需要刷新的目錄中的目標(biāo)緩存文件之一時(shí),刪除該緩存文件;當(dāng)緩存文件不符合需要刷新的目錄中的任一目標(biāo)緩存文件時(shí),則結(jié)束。在一個(gè)實(shí)施例中,所述緩存文件的目錄刷新方法還包括將代理緩存服務(wù)器即時(shí)產(chǎn)生的緩存文件保存到該日志文件夾。在另一個(gè)實(shí)施例中,所述緩存文件的目錄刷新方法還包括設(shè)定日志文件夾的緩存文件數(shù)目上限值,當(dāng)日志文件夾的緩存文件數(shù)目增長到該上限值時(shí),則對日志文件夾中的緩存文件進(jìn)行排序。
在另一個(gè)實(shí)施例中,緩存文件數(shù)目上限值小于等于10000。在另一個(gè)實(shí)施例中,所述排序完成的日志文件夾與所述數(shù)據(jù)庫文件夾之間的合并算法采用歸并排序算法。在另一個(gè)實(shí)施例中,所述日志文件夾的排序方法包括假設(shè)有2個(gè)緩存文件,名稱分別為A和B,LenA=A的長度,LenB=B的長度,設(shè)LenA ^ LenB ;設(shè)置循環(huán)數(shù)i從I循環(huán)到LenA,依次一一對比A和B的第i個(gè)字符,當(dāng)A的第η個(gè)字符的ASCII碼小于B的第η個(gè)字符的ASCII碼時(shí),認(rèn)為A應(yīng)該排在B前面;反之,當(dāng)B的第η個(gè)字符的ASCII碼小于A的第η個(gè)字符的ASCII碼時(shí),認(rèn)為B應(yīng)該排在A前面;當(dāng)循環(huán)到LenA時(shí),A和B的每個(gè)對應(yīng)位置上所有字符都相等,那么,較短的A則排在較長的B前面;如果A和B完全相等,則在日志文件夾與數(shù)據(jù)庫文件夾進(jìn)行合并時(shí),任取 其中之一放入數(shù)據(jù)庫文件夾。在另一個(gè)實(shí)施例中,所述子數(shù)據(jù)庫的個(gè)數(shù)N取值為128。在另一個(gè)實(shí)施例中,所抽取的第i個(gè)緩存文件為該子數(shù)據(jù)庫的最后一個(gè)緩存文件,使得所抽取的樣本緩存文件分別位于整個(gè)數(shù)據(jù)庫文件夾中的第1/N、2/N……(N-l)/N處。本發(fā)明還提供了采用上述緩存文件的目錄刷新方法的代理緩存服務(wù)器,包括用于存儲所述代理緩存服務(wù)器產(chǎn)生的即時(shí)緩存文件的日志文件夾模塊,用于存儲所述代理緩存服務(wù)器產(chǎn)生的歷史緩存文件的數(shù)據(jù)庫文件夾模塊,用于對數(shù)據(jù)庫文件夾中的歷史緩存文件進(jìn)行索引的索引文件夾模塊。從上面所述可以看出,本發(fā)明提供的一種緩存文件的目錄刷新方法及采用該方法的代理緩存服務(wù)器,通過增設(shè)日志文件夾和索引文件夾,能夠隨時(shí)將代理服務(wù)器即時(shí)產(chǎn)生的緩存文件保存下來,并且通過索引算法在短時(shí)間內(nèi)找到需要刪除的目標(biāo)緩存文件。
圖I為本發(fā)明所提供的一種緩存文件的目錄刷新方法的實(shí)施例流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。參考圖1,為本發(fā)明所提供的一種緩存文件的目錄刷新方法的實(shí)施例流程圖。所述的一種緩存文件的目錄刷新方法包括以下步驟步驟I :對日志文件夾中的緩存文件進(jìn)行排序;步驟2 :將排序完成的日志文件夾合并到數(shù)據(jù)庫文件夾;步驟3 :將所述數(shù)據(jù)庫文件夾平均分為N個(gè)子數(shù)據(jù)庫,從第I子數(shù)據(jù)庫到第N-I數(shù)據(jù)庫中各抽取第i個(gè)緩存文件作為緩存文件樣本,將所有緩存文件樣本保存在索引文件夾里;步驟4:在索引文件夾中找出需要刷新的目錄中的目標(biāo)緩存文件,并找到該目標(biāo)緩存文件在數(shù)據(jù)庫文件夾中的所處位置;
步驟5 :從該目標(biāo)緩存文件在數(shù)據(jù)庫文件夾中的所處位置起,遍歷數(shù)據(jù)庫文件夾,當(dāng)緩存文件符合需要刷新的目錄中的目標(biāo)緩存文件之一時(shí),刪除該緩存文件;步驟6 :當(dāng)緩存文件不符合需要刷新的目錄中的任一目標(biāo)緩存文件時(shí),則結(jié)束。其中,還包括初始化步驟在代理緩存服務(wù)器中建立日志文件夾,并將代理緩存服務(wù)器即時(shí)產(chǎn)生的緩存文件保存到該日志文件夾。所述日志文件夾的排序方法為假設(shè)有2個(gè)緩存文件,名稱分別為A和B,LenA=A的長度,LenB=B的長度,不妨設(shè)LenA ^ LenB ;設(shè)置循環(huán)數(shù)i從I循環(huán)到LenA,依次一一對比A和B的第i個(gè)字符,當(dāng)A的第η個(gè)字符的ASCII碼小于B的第η個(gè)字符的ASCII碼時(shí),認(rèn)為A應(yīng)該排在B前面;反之,當(dāng)B的第η個(gè)字符的ASCII碼小于A的第η個(gè)字符的ASCII碼時(shí),認(rèn)為B應(yīng)該排在A前面;當(dāng)循環(huán)到LenA時(shí),A和B的每個(gè)對應(yīng)位置上所有字符都相等,那么,較短的A則排在較長的B前面;如果A和B完全相等,則在日志文件夾與數(shù)據(jù)庫文件夾進(jìn)行合并時(shí),任取其中之一放入數(shù)據(jù)庫文件夾。 根據(jù)以上所述可以看出,在代理緩存服務(wù)器中增加設(shè)置一個(gè)日志文件夾和一個(gè)索引文件夾,能夠隨時(shí)將代理緩存服務(wù)器中即時(shí)產(chǎn)生的緩存文件保存下來,并且采用索引算法通過索引文件夾在幾毫秒之內(nèi)就能找到數(shù)據(jù)庫文件夾中所需要刪除的目標(biāo)緩存文件,同時(shí)有效、穩(wěn)定、快速地刪除該目標(biāo)緩存文件。優(yōu)選的,所述步驟I還包括設(shè)定日志文件夾的緩存文件數(shù)目上限值,當(dāng)日志文件夾的緩存文件數(shù)目增長到該上限值時(shí),則對日志文件夾中的緩存文件進(jìn)行排序。優(yōu)選的,所述上限值小于等于10000 ;由于這個(gè)上限值很小,則排序速度很快。 另外,由于數(shù)據(jù)庫文件夾是由歷史上每一次的日志文件夾積累起來的,雖然可能有上千萬條記錄,但它始終是有序的。并且所述排序完成的日志文件夾與所述數(shù)據(jù)庫文件夾之間的合并算法采用歸并排序算法。優(yōu)選的,所述子數(shù)據(jù)庫的個(gè)數(shù)N取值為128,這樣一來,索引文件夾不會過大,又不會由于索引條數(shù)過少導(dǎo)致查完索引后在數(shù)據(jù)庫文件夾中順序搜索的時(shí)間過長。特別地,所抽取的第i個(gè)緩存文件為子數(shù)據(jù)庫的最后一個(gè)緩存文件,使得所抽取
的樣本緩存文件分別位于整個(gè)數(shù)據(jù)庫文件夾中的第1/N、2/N......(N-I)/N處;這樣便減少
了順序搜素?cái)?shù)據(jù)庫文件夾的過程。本發(fā)明還公開了一種采用上述的緩存文件的目錄刷新方法的任意組合的代理緩存服務(wù)器,包括用于存儲所述代理緩存服務(wù)器產(chǎn)生的即時(shí)緩存文件的日志文件夾模塊,用于存儲所述代理緩存服務(wù)器產(chǎn)生的歷史緩存文件的數(shù)據(jù)庫文件夾模塊,用于對數(shù)據(jù)庫文件夾中的歷史緩存文件進(jìn)行索引的索引文件夾模塊。較佳的,所述索引文件夾模塊中的索引文件夾的建立的方法為將所述數(shù)據(jù)庫文件夾平均分為N個(gè)子數(shù)據(jù)庫,從第I子數(shù)據(jù)庫到第N-I數(shù)據(jù)庫中各抽取第i個(gè)緩存文件作為緩存文件樣本,將所有緩存文件樣本保存在索引文件夾里。優(yōu)選的,所述子數(shù)據(jù)庫的個(gè)數(shù)N取值為128,這樣一來,索引文件夾不會過大,又不會由于索引條數(shù)過少導(dǎo)致查完索引后在數(shù)據(jù)庫文件夾中順序搜索的時(shí)間過長。特別地,所抽取的第i個(gè)緩存文件為子數(shù)據(jù)庫的最后一個(gè)緩存文件,使得所抽取的樣本緩存文件分別位于整個(gè)數(shù)據(jù)庫文件夾中的第1/N、2/N......(N-I)/N處;這樣便減少
了順序搜素?cái)?shù)據(jù)庫文件夾的過程。特別的,還可以設(shè)定所述日志文件夾模塊中日志文件夾的緩存文件數(shù)目上限值,當(dāng)日志文件夾的緩存文件數(shù)目增長到該上限值時(shí),則對日志文件夾中的緩存文件進(jìn)行排序;優(yōu)選的,所述緩存文件數(shù)目上限值小于等于10000。其中,優(yōu)選的,所述排序完成的日志文件夾與所述數(shù)據(jù)庫文件夾之間的合并算法采用歸并排序算法。根據(jù)以上所述可以看出,所述代理緩存服務(wù)器中增加設(shè)置一個(gè)日志文件夾和一個(gè)索引文件夾,能夠隨時(shí)將代理緩存服務(wù)器中即時(shí)產(chǎn)生的緩存文件保存下來,并且采用索引算法通過索引文件夾在幾毫秒之內(nèi)就能找到數(shù)據(jù)庫文件夾中所需要刪除的目標(biāo)緩存文件,同時(shí)有效、穩(wěn)定、快速地刪除該目標(biāo)緩存文件。
所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種緩存文件的目錄刷新方法,其特征在于,包括 對日志文件夾中的緩存文件進(jìn)行排序; 將排序完成的日志文件夾合并到數(shù)據(jù)庫文件夾; 將所述數(shù)據(jù)庫文件夾平均分為N個(gè)子數(shù)據(jù)庫,從第I子數(shù)據(jù)庫到第N-I數(shù)據(jù)庫中各抽取第i個(gè)緩存文件作為緩存文件樣本,將所有緩存文件樣本保存在索引文件夾里; 在索引文件夾中找出需要刷新的目錄中的目標(biāo)緩存文件,并找到該目標(biāo)緩存文件在數(shù)據(jù)庫文件夾中的所處位置; 從該目標(biāo)緩存文件在數(shù)據(jù)庫文件夾中的所處位置起,遍歷數(shù)據(jù)庫文件夾,當(dāng)緩存文件符合需要刷新的目錄中的目標(biāo)緩存文件之一時(shí),刪除該緩存文件; 當(dāng)緩存文件不符合需要刷新的目錄中的任一目標(biāo)緩存文件時(shí),則結(jié)束。
2.根據(jù)權(quán)利要求I所述的一種緩存文件的目錄刷新方法,其特征在于,其還包括將代理緩存服務(wù)器即時(shí)產(chǎn)生的緩存文件保存到該日志文件夾。
3.根據(jù)權(quán)利要求2所述的一種緩存文件的目錄刷新方法,其特征在于,還包括設(shè)定日志文件夾的緩存文件數(shù)目上限值,當(dāng)日志文件夾的緩存文件數(shù)目增長到該上限值時(shí),則對日志文件夾中的緩存文件進(jìn)行排序。
4.根據(jù)權(quán)利要求3所述的一種緩存文件的目錄刷新方法,其特征在于,緩存文件數(shù)目上限值小于等于10000。
5.根據(jù)權(quán)利要求I所述的一種緩存文件的目錄刷新方法,其特征在于,所述排序完成的日志文件夾與所述數(shù)據(jù)庫文件夾之間的合并算法采用歸并排序算法。
6.根據(jù)權(quán)利要求I所述的一種緩存文件的目錄刷新方法,其特征在于,所述日志文件夾的排序方法包括 假設(shè)有2個(gè)緩存文件,名稱分別為A和B,LenA=A的長度,LenB=B的長度,設(shè)LenA ^ LenB ; 設(shè)置循環(huán)數(shù)i從I循環(huán)到LenA,依次一一對比A和B的第i個(gè)字符,當(dāng)A的第η個(gè)字符的ASCII碼小于B的第η個(gè)字符的ASCII碼時(shí),認(rèn)為A應(yīng)該排在B前面;反之,當(dāng)B的第η個(gè)字符的ASCII碼小于A的第η個(gè)字符的ASCII碼時(shí),認(rèn)為B應(yīng)該排在A前面; 當(dāng)循環(huán)到LenA時(shí),A和B的每個(gè)對應(yīng)位置上所有字符都相等,那么,較短的A則排在較長的B前面;如果A和B完全相等,則在日志文件夾與數(shù)據(jù)庫文件夾進(jìn)行合并時(shí),任取其中之一放入數(shù)據(jù)庫文件夾。
7.根據(jù)權(quán)利要求1-6任意一項(xiàng)所述的一種緩存文件的目錄刷新方法,其特征在于,所述子數(shù)據(jù)庫的個(gè)數(shù)N取值為128。
8.根據(jù)權(quán)利要求7所述的一種緩存文件的目錄刷新方法,其特征在于,所抽取的第i個(gè)緩存文件為該子數(shù)據(jù)庫的最后一個(gè)緩存文件,使得所抽取的樣本緩存文件分別位于整個(gè)數(shù)據(jù)庫文件夾中的第1/N、2/N……(N-I)/N處。
9.采用根據(jù)權(quán)利要求1-8中任意一項(xiàng)所述的一種緩存文件的目錄刷新方法的代理緩存服務(wù)器,其特征在于,包括用于存儲所述代理緩存服務(wù)器產(chǎn)生的即時(shí)緩存文件的日志文件夾模塊,用于存儲所述代理緩存服務(wù)器產(chǎn)生的歷史緩存文件的數(shù)據(jù)庫文件夾模塊,用于對數(shù)據(jù)庫文件夾中的歷史緩存文件進(jìn)行索引的索引文件夾模塊。
全文摘要
本發(fā)明公開了一種緩存文件的目錄刷新方法,包括對日志文件夾中的緩存文件進(jìn)行排序;將排序完成的日志文件夾合并到數(shù)據(jù)庫文件夾;將所述數(shù)據(jù)庫文件夾平均分為N個(gè)子數(shù)據(jù)庫,從第1子數(shù)據(jù)庫到第N-1數(shù)據(jù)庫中各抽取第i個(gè)緩存文件作為緩存文件樣本,將所有緩存文件樣本保存在索引文件夾里;在索引文件夾中找出需要刷新的目錄中的目標(biāo)緩存文件,并找到該目標(biāo)緩存文件在數(shù)據(jù)庫文件夾中的所處位置;從該目標(biāo)緩存文件在數(shù)據(jù)庫文件夾中的所處位置起,遍歷數(shù)據(jù)庫文件夾,當(dāng)緩存文件符合需要刷新的目錄中的目標(biāo)緩存文件之一時(shí),刪除該緩存文件;當(dāng)緩存文件不符合需要刷新的目錄中的任一目標(biāo)緩存文件時(shí),則結(jié)束;本發(fā)明還公開了一種代理緩存服務(wù)器。
文檔編號G06F17/30GK102831181SQ201210270668
公開日2012年12月19日 申請日期2012年7月31日 優(yōu)先權(quán)日2012年7月31日
發(fā)明者邱然 申請人:北京光澤時(shí)代通信技術(shù)有限公司