本發(fā)明涉及分布式文件系統(tǒng)讀共享緩存老化設(shè)計(jì)技術(shù)領(lǐng)域,特別涉及一種基于redis過期鍵的分布式讀共享緩存老化方法。
背景技術(shù):
分布式文件系統(tǒng)是由多個(gè)存儲(chǔ)節(jié)點(diǎn)對(duì)外提供統(tǒng)一的文件系統(tǒng),客戶應(yīng)用可以通過任意一個(gè)存儲(chǔ)節(jié)點(diǎn)讀取到文件系統(tǒng)中的保存的文件,為了提高文件的二次讀取效率,通常會(huì)提供讀緩存來緩存最近讀取過的文件,由于系統(tǒng)的物理緩存大小是固定的,所以需要對(duì)長期不訪問的緩存文件進(jìn)行老化,達(dá)到緩存新的訪問頻繁的文件。
通常情況下系統(tǒng)會(huì)在一開始劃分出固定的讀緩存大小,在緩存未用完時(shí),不對(duì)緩存數(shù)據(jù)進(jìn)行老化,當(dāng)緩存用完時(shí),一次性根據(jù)最少訪問策略老化一批緩存文件。
該老化方法無法根據(jù)系統(tǒng)要求動(dòng)態(tài)調(diào)整緩存大小,且在讀緩存滿,又讀未命中的情況下進(jìn)行緩存釋放,緩存利用效率較低。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明提供了一種基于redis過期鍵的分布式讀共享緩存老化方法,其可以在大量讀的情況充分利用物理緩存提高讀效率。
本發(fā)明所采用的技術(shù)方案如下:
一種基于redis過期鍵的分布式讀共享緩存老化方法,包括以下步驟:
a、當(dāng)客戶應(yīng)用第一次讀文件時(shí),緩存無法命中,存儲(chǔ)節(jié)點(diǎn)緩存文件,并以文件名為關(guān)鍵字把索引寫入到redis數(shù)據(jù)庫,并設(shè)置過期時(shí)間;
a2、當(dāng)客戶應(yīng)用在過期時(shí)間內(nèi)訪問該文件,直接從緩存中獲取,并重置過期時(shí)間;
a3、當(dāng)客戶應(yīng)用在過期時(shí)間內(nèi)都未訪問該文件,系統(tǒng)刪除redis數(shù)據(jù)中該關(guān)鍵字,并釋放該文件的緩存空間。
所有存儲(chǔ)節(jié)點(diǎn)通過redis數(shù)據(jù)庫保存讀共享緩存索引,以文件名字為關(guān)鍵字,緩存共享占用空間不進(jìn)行限制,根據(jù)系統(tǒng)隨機(jī)讀壓力占用緩存空間自動(dòng)調(diào)節(jié)。
利用redis過期鍵的特性為每個(gè)文件關(guān)鍵字設(shè)置過期時(shí)間,每次緩存命中后重置過期時(shí)間,過期時(shí)間內(nèi)無訪問,則對(duì)該緩存文件進(jìn)行老化,釋放緩存空間。
讀緩存空間不限制大小,當(dāng)讀緩存未命中時(shí),申請(qǐng)新的緩存空間,緩存占用空間大小取決于過期時(shí)間設(shè)置以及業(yè)務(wù)讀壓力自動(dòng)調(diào)節(jié),當(dāng)讀壓力小、過期時(shí)間設(shè)置小時(shí),占用緩存空間小。
本發(fā)明提供的技術(shù)方案帶來的有益效果是:
本發(fā)明的一種基于redis過期鍵的分布式讀共享緩存老化方法,其主要功能為所有存儲(chǔ)節(jié)點(diǎn)通過redis數(shù)據(jù)庫保存讀共享緩存索引,以文件名字為關(guān)鍵字,利用redis過期鍵特性為每個(gè)關(guān)鍵字設(shè)置過期時(shí)間,當(dāng)有緩存命中時(shí),重置關(guān)鍵字過期時(shí)間,當(dāng)過期時(shí)間到后,對(duì)該關(guān)鍵字的文件進(jìn)行老化,釋放緩存空間,當(dāng)緩存無法命中時(shí),重新申請(qǐng)緩存空間進(jìn)行文件緩存,不限制緩存大小,根據(jù)讀訪問壓力以及過期時(shí)間決定緩存空間大小,通過該方法可以在大量讀的情況充分利用物理緩存提高讀效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)下的分布式讀共享緩存老化方法流程圖;
圖2為本發(fā)明的一種基于redis過期鍵的分布式讀共享緩存老化方法的方法流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
實(shí)施例一
如圖2所示,表示了本實(shí)施例提供的基于redis過期鍵的分布式讀共享緩存老化方法:
客戶應(yīng)用讀取文件,存儲(chǔ)節(jié)點(diǎn)判斷緩存是否命中,如果是則直接讀取文件,重置redis關(guān)鍵字的過期時(shí)間,如果否則申請(qǐng)新的緩存空間緩存文件,設(shè)置redis關(guān)鍵字的過期時(shí)間,再返回讀取到的文件,同時(shí)存儲(chǔ)節(jié)點(diǎn)不斷定時(shí)判斷是否有關(guān)鍵字過期時(shí)間到,如果是則刪除關(guān)鍵字,并進(jìn)行緩存空間釋放,如果否,則繼續(xù)等待下一次檢測(cè)判斷。
所有存儲(chǔ)節(jié)點(diǎn)通過redis數(shù)據(jù)庫保存讀共享緩存索引,以文件名字為關(guān)鍵字,緩存共享占用空間不進(jìn)行限制,根據(jù)系統(tǒng)隨機(jī)讀壓力占用緩存空間自動(dòng)調(diào)節(jié)。
利用redis過期鍵的特性為每個(gè)文件關(guān)鍵字設(shè)置過期時(shí)間,每次緩存命中后重置過期時(shí)間,過期時(shí)間內(nèi)無訪問,則對(duì)該緩存文件進(jìn)行老化,釋放緩存空間。
讀緩存空間不限制大小,當(dāng)讀緩存未命中時(shí),申請(qǐng)新的緩存空間,緩存占用空間大小取決于過期時(shí)間設(shè)置以及業(yè)務(wù)讀壓力自動(dòng)調(diào)節(jié),當(dāng)讀壓力小、過期時(shí)間設(shè)置小時(shí),占用緩存空間小。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。