專利名稱:一種分布式緩存系統(tǒng)數(shù)據(jù)存取的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式緩存領(lǐng)域,特別是指一種分布式緩存系統(tǒng)數(shù)據(jù)存取的方法及裝置。
背景技術(shù):
云計算(Cloud Computing)是網(wǎng)格計算(Grid Computing)、分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(UtilityComputing)、網(wǎng)絡(luò)存儲(Network Storage Technologies)、虛擬化(Virtualization)、負(fù)載均衡(Load Balance)等傳統(tǒng)計算機技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。它旨在通過網(wǎng)絡(luò)把多個成本相對較低的計算實體整合成一個具有強大計算能力的系統(tǒng)。分布式緩存是云計算 范疇中的一個領(lǐng)域,其作用是提供海量數(shù)據(jù)的分布式存儲服務(wù)以及高速讀寫訪問的能力。分布式緩存系統(tǒng)是由若干服務(wù)器節(jié)點和客戶端互相連接構(gòu)成的。服務(wù)器節(jié)點負(fù)責(zé)數(shù)據(jù)的存儲,客戶端可以對服務(wù)器節(jié)點的數(shù)據(jù)進(jìn)行讀取、更新以及刪除等操作。服務(wù)器節(jié)點中的數(shù)據(jù)由鍵(Key)、以及值(Value)構(gòu)成,Key相當(dāng)于數(shù)據(jù)索引,Value是Key所代表的數(shù)據(jù)內(nèi)容。Key和Value是一對一的關(guān)系。在分布式緩存系統(tǒng)中,如何提高大批量數(shù)據(jù)的存取效率,是比較難以解決的問題。對大量不同的數(shù)據(jù)反復(fù)做讀取、更新、刪除等動作,內(nèi)存緩存很快就會耗盡,為了提高存儲容量,往往需要內(nèi)存和硬盤組合起來存儲數(shù)據(jù),這樣,分布式緩存中的一部分?jǐn)?shù)據(jù)必然要存儲在硬盤上,如果要讀取硬盤上的數(shù)據(jù),會花費很長的時間在磁盤10上,讀操作將變得很慢,這就是所述大批量數(shù)據(jù)存儲存取效率問題。現(xiàn)有技術(shù)中,大批量數(shù)據(jù)的存儲效率一般有兩種解決方法方案1,在分布式緩存系統(tǒng)中全部使用內(nèi)存來存儲大批量數(shù)據(jù),可以確保存取效率,但這需要付出很高的經(jīng)濟代價,只能在一些非常重要或能創(chuàng)造較高經(jīng)濟價值的項目中使用,很難應(yīng)用在普通的項目中;方案2,采用內(nèi)存和硬盤組合起來存儲數(shù)據(jù)的方式,數(shù)據(jù)全部保存在硬盤上,讀取數(shù)據(jù)時,將數(shù)據(jù)從硬盤中讀取,并緩存到內(nèi)存中,這種方法主要缺點是,一些需要較高存取效率的數(shù)據(jù)也需要先從硬盤中讀取,緩存到內(nèi)存,與普通數(shù)據(jù)共用一種存儲數(shù)據(jù)的方式,數(shù)據(jù)的存取只能獲得普通的存取效率,導(dǎo)致存取效率較低。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種分布式緩存系統(tǒng)數(shù)據(jù)存取的方法及裝置,提升了數(shù)據(jù)的存取效率,并提高了分布式緩存系統(tǒng)的性價比。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的本發(fā)明提供了一種分布式緩存系統(tǒng)數(shù)據(jù)存取的方法,該方法包括服務(wù)器節(jié)點接收客戶端發(fā)送的數(shù)據(jù)存取請求,根據(jù)數(shù)據(jù)存取請求確定所存取數(shù)據(jù)的存儲模式,根據(jù)存儲模式存取數(shù)據(jù),并向客戶端返回存取結(jié)果。
上述方案中,所述根據(jù)數(shù)據(jù)存取請求確定所存取數(shù)據(jù)的存儲模式包括讀取數(shù)據(jù)存取請求中的應(yīng)用標(biāo)識ID,根據(jù)本地配置的應(yīng)用ID與存儲模式的對應(yīng)關(guān)系,獲取所存取數(shù)據(jù)的存儲模式。上述方案中,所述根據(jù)存儲模式存取數(shù)據(jù)包括接收數(shù)據(jù)更新請求,
確定為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)更新請求中的鍵KEY及值Value,更新內(nèi)存中的數(shù)據(jù);或,確定為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)更新請求中的KEY及Value,更新硬盤中的數(shù)據(jù),然后更新內(nèi)存中的數(shù)據(jù);或,確定為內(nèi)存加固態(tài)硬盤模式,確定內(nèi)存中有剩余空間,更新內(nèi)存中的數(shù)據(jù),否則,釋放內(nèi)存空間,然后更新內(nèi)存中的數(shù)據(jù)。上述方案中,所述根據(jù)存儲模式存取數(shù)據(jù)包括接收數(shù)據(jù)讀取請求,確定為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)讀取請求中的KEY,讀取內(nèi)存中的數(shù)據(jù);或,確定為內(nèi)存加普通硬盤存儲模式,根據(jù)所述KEY讀取內(nèi)存中的數(shù)據(jù),若內(nèi)存中沒有要讀取的數(shù)據(jù),則從硬盤中讀取數(shù)據(jù);或,確定為內(nèi)存加固態(tài)硬盤模式,根據(jù)內(nèi)存中的索引信息確定要讀取的數(shù)據(jù)存在,然后根據(jù)索引信息確定數(shù)據(jù)的存儲位置,讀取數(shù)據(jù)。上述方案中,所述根據(jù)存儲模式存取數(shù)據(jù)包括接收數(shù)據(jù)刪除請求,確定為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)刪除請求中的KEY,刪除內(nèi)存中的數(shù)據(jù);或,確定為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)刪除請求中的KEY先刪除硬盤中的數(shù)據(jù),然后刪除內(nèi)存中的數(shù)據(jù);或,確定為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中的索引信息確定要刪除的數(shù)據(jù)存在,根據(jù)索引信息中數(shù)據(jù)的存儲位置,刪除數(shù)據(jù)。本發(fā)明還提供了一種分布式緩存系統(tǒng)數(shù)據(jù)存取的裝置,該裝置包括數(shù)據(jù)存取模塊、信息反饋模塊;數(shù)據(jù)存取模塊,用于接收客戶端發(fā)送的數(shù)據(jù)存取請求,根據(jù)數(shù)據(jù)存取請求獲取要存取的數(shù)據(jù)的存儲模式,根據(jù)存儲模式存取數(shù)據(jù),并將存取結(jié)果發(fā)送給信息反饋模塊;信息反饋模塊,用于將存取結(jié)果返回客戶端。上述方案中,所述數(shù)據(jù)存取模塊具體包括存取模式單元、數(shù)據(jù)更新單元、數(shù)據(jù)讀取單元以及數(shù)據(jù)刪除單元;存取模式單元,用于讀取數(shù)據(jù)存取請求中的應(yīng)用ID,根據(jù)本地配置的應(yīng)用ID與存儲模式的對應(yīng)關(guān)系,獲取所存取數(shù)據(jù)的存儲模式,接收數(shù)據(jù)更新請求,將獲取的存儲模式及數(shù)據(jù)更新請求發(fā)送給數(shù)據(jù)更新單元;接收數(shù)據(jù)讀取請求,將所述數(shù)據(jù)讀取請求及獲取的存儲模式發(fā)送給數(shù)據(jù)讀取單元;接收數(shù)據(jù)刪除請求,將所述數(shù)據(jù)刪除請求及獲取的存儲模式發(fā)送給數(shù)據(jù)刪除單元。上述方案中,所述數(shù)據(jù)更新單元,用于獲取的存儲模式為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)更新請求中的KEY及Value,更新內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)更新請求中數(shù)據(jù)的KEY及Value,更新硬盤中數(shù)據(jù),然后,更新內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加固態(tài)硬盤存儲模式,確定內(nèi)存中有剩余空間,更新內(nèi)存中的數(shù)據(jù),否則,釋放內(nèi)存空間,然后更新內(nèi)存中的數(shù)據(jù)。上述方案中,所述數(shù)據(jù)讀取單元,用于獲取的存儲模式為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)讀取請求中的KEY,讀取內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加普通硬盤存儲模式,根據(jù)所述KEY,根據(jù)數(shù)據(jù)讀取請求中的KEY,先從內(nèi)存讀取數(shù)據(jù),若內(nèi)存中沒有要讀取的數(shù)據(jù),則從硬盤中讀取數(shù)據(jù),并緩存到內(nèi)存中;或,為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中索引信息確定要讀取的數(shù)據(jù)存在,然后根據(jù)索引信息確定數(shù)據(jù)的存儲位置,讀取數(shù)據(jù)。
上述方案中,所述數(shù)據(jù)刪除單元,用于獲取的存儲模式為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)刪除請求中的KEY,刪除內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加普通硬盤存儲模式,根據(jù)所述KEY,先刪除普通硬盤中的數(shù)據(jù),進(jìn)一步刪除內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中的索引信息確定要刪除的數(shù)據(jù)存在,根據(jù)索引信息中數(shù)據(jù)的存儲位置,刪除數(shù)據(jù)。由此可見,采用本發(fā)明所述的分布式緩存系統(tǒng)數(shù)據(jù)存取的方法及裝置,針對不同的數(shù)據(jù)采用不同的存儲模式,提升了數(shù)據(jù)的存取效率,并提高了分布式緩存系統(tǒng)的性價比。
圖I為本發(fā)明實現(xiàn)分布式緩存系統(tǒng)數(shù)據(jù)存取的方法實施例示意圖;
圖2為本發(fā)明實現(xiàn)分布式緩存系統(tǒng)數(shù)據(jù)存取的裝置實施例示意圖。
具體實施例方式本發(fā)明的基本思想是客戶端向服務(wù)器節(jié)點發(fā)送數(shù)據(jù)存取請求,服務(wù)器節(jié)點根據(jù)數(shù)據(jù)存取請求獲取要存取數(shù)據(jù)的存儲模式,然后根據(jù)存儲模式存取數(shù)據(jù),并向客戶端返回存取結(jié)果。下面通過附圖與具體實施例來對本發(fā)明進(jìn)行詳細(xì)說明。本發(fā)明提供了一種分布式緩存系統(tǒng)數(shù)據(jù)存取的方法,如圖I所示,包括如下步驟步驟101、客戶端向服務(wù)器節(jié)點發(fā)送數(shù)據(jù)存取請求;客戶端向服務(wù)器節(jié)點發(fā)送數(shù)據(jù)存取請求,所述數(shù)據(jù)存取請求為數(shù)據(jù)更新請求,或數(shù)據(jù)讀取請求,或數(shù)據(jù)刪除請求;其中,所述數(shù)據(jù)更新為數(shù)據(jù)寫入或替換;所述數(shù)據(jù)更新請求中包含應(yīng)用標(biāo)識(ID),以及所更新的數(shù)據(jù)的KEY、Value。所述應(yīng)用ID用于標(biāo)識業(yè)務(wù)應(yīng)用系統(tǒng),本發(fā)明中的實施例按照應(yīng)用ID對應(yīng)的業(yè)務(wù)應(yīng)用系統(tǒng)來劃分相應(yīng)業(yè)務(wù)應(yīng)用數(shù)據(jù)的存儲模式,也可以采用其他的方法,在此不一一舉例說明;所述數(shù)據(jù)讀取請求中包含應(yīng)用ID,以及所讀取的數(shù)據(jù)的KEY ;所述數(shù)據(jù)刪除請求中包含應(yīng)用ID,以及所刪除的數(shù)據(jù)的KEY。步驟102、服務(wù)器節(jié)點根據(jù)數(shù)據(jù)存取請求,獲取要存儲的數(shù)據(jù)的存儲模式,然后根據(jù)存儲模式存取數(shù)據(jù);服務(wù)器節(jié)點讀取數(shù)據(jù)存取請求中的應(yīng)用ID,根據(jù)本地配置的應(yīng)用ID與存儲模式的對應(yīng)關(guān)系,獲取數(shù)據(jù)存取請求中應(yīng)用ID對應(yīng)的存儲模式,也就是要存取的數(shù)據(jù)對應(yīng)的存儲模式,所述要存取的數(shù)據(jù)即為要更新、讀取或刪除的數(shù)據(jù)。所述根據(jù)存取模式存取數(shù)據(jù)包括接收數(shù)據(jù)更新請求,若要更新的數(shù)據(jù)為內(nèi)存存儲模式,則根據(jù)數(shù)據(jù)更新請求中的KEY及Value更新內(nèi)存中的數(shù)據(jù),所述內(nèi)存存儲模式為數(shù)據(jù)的存儲及管理均在內(nèi)存中,所述更新具體為替換數(shù)據(jù)時,根據(jù)數(shù)據(jù)更新請求中的KEY,查詢內(nèi)存中保存的數(shù)據(jù),若內(nèi)存中有數(shù)據(jù)的KEY與數(shù)據(jù)更新請求中的KEY相符,可以確定內(nèi)存中有該數(shù)據(jù),用數(shù)據(jù)更新請求中的Value覆蓋內(nèi)存中相應(yīng)KEY數(shù)據(jù)的Value,若沒有數(shù)據(jù)與數(shù)據(jù)更新請求中的KEY相符,則內(nèi)存中沒有該數(shù)據(jù),更新失??;寫入數(shù)據(jù)時,直接將數(shù)據(jù)寫入內(nèi)存;或者,要存取的數(shù)據(jù)為內(nèi)存加普通硬盤存儲模式,則根據(jù)數(shù)據(jù)更新請求中數(shù)據(jù)的KEY及Value更新硬盤中數(shù)據(jù),然后,確定內(nèi)存中有該數(shù)據(jù),則更新內(nèi)存中的數(shù)據(jù),所述確定內(nèi)存中有該數(shù)據(jù)與內(nèi)存存儲模式的更新過程中確定內(nèi)存中有該數(shù)據(jù)的過程相同,在此不再贅述;所述更新與內(nèi)存存儲模式的更新過程相同,在此不再贅述;所述內(nèi)存加普通硬盤存儲模式是內(nèi)存與硬盤獨立管理所存儲的數(shù)據(jù)的存儲模式,內(nèi)存所存儲的數(shù)據(jù)可以為熱點數(shù)據(jù),也就是經(jīng)常被存取的數(shù)據(jù)?;蛘?,要存取的數(shù)據(jù)為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中保存的內(nèi)存容量信息確定內(nèi)存中是否有剩余空間,若內(nèi)存容量信息顯示內(nèi)存中還有剩余空間,則更新內(nèi)存中的數(shù)據(jù),若沒有剩余空間,則釋放內(nèi)存空間,然后更新內(nèi)存中的數(shù)據(jù),并更新移到固態(tài)硬盤中的數(shù)據(jù)的存儲位置,所述更新內(nèi)存中的數(shù)據(jù)與所述內(nèi)存存儲模式中的更新相同,在此不再贅述,所述釋放內(nèi)存空間是通過最近最少使用(LRU)算法,根據(jù)內(nèi)存中保存的數(shù)據(jù)保存的時間記錄,將保存時間最早的數(shù)據(jù)移到固態(tài)硬盤中,所述內(nèi)存加固態(tài)硬盤存儲模式是一種索引信息保存在內(nèi)存中,內(nèi)存中有剩余空間,內(nèi)存存取數(shù)據(jù),內(nèi)存中沒有剩余空間,則在固態(tài)硬盤中存取數(shù)據(jù),并通過內(nèi)存中保存的索引信息管理內(nèi)存及固態(tài)硬盤中的數(shù)據(jù),所述固態(tài)硬盤數(shù)據(jù)的存取速度大于普通硬盤數(shù)據(jù)的存取速度,作為內(nèi)存的擴展,數(shù)據(jù)只保存在內(nèi)存或固態(tài)硬盤中的一處,所述索引信息為內(nèi)存根據(jù)內(nèi)存及固態(tài)硬盤中數(shù)據(jù)的更新或刪除操作、實時更新的包括數(shù)據(jù)的KEY以及數(shù)據(jù)的存儲位置的信息。 或,接收數(shù)據(jù)讀取請求,若要存取的數(shù)據(jù)為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)讀取請求中的KEY,讀取內(nèi)存中的數(shù)據(jù),所述讀取數(shù)據(jù)包括根據(jù)數(shù)據(jù)讀取請求中的KEY,查詢內(nèi)存中數(shù) 據(jù) 的KEY,若與數(shù)據(jù)讀取請求中的KEY相符,則讀取該數(shù)據(jù),若沒有與數(shù)據(jù)讀取請求中的KEY相符的數(shù)據(jù),則沒有要讀取的數(shù)據(jù),讀取失??;或者,要存取的數(shù)據(jù)為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)讀取請求中的KEY,先從內(nèi)存讀取數(shù)據(jù),若內(nèi)存中沒有要讀取的數(shù)據(jù),則從硬盤中讀取數(shù)據(jù),同時將數(shù)據(jù)緩存到內(nèi)存中,所述讀取過程與內(nèi)存存儲模式的讀取過程相同,在此不再贅述;或者,要存取的數(shù)據(jù)為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中的索引信息確定要讀取的數(shù)據(jù)是否存在,若要讀取的數(shù)據(jù)存在,根據(jù)索引信息中數(shù)據(jù)的存儲位置,讀取數(shù)據(jù),若要讀取的數(shù)據(jù)不存在,則不進(jìn)行讀取操作,向客戶端返回數(shù)據(jù)不存在的消息,所述根據(jù)內(nèi)存中索引信息確定要讀取的數(shù)據(jù)是否存在包括將數(shù)據(jù)讀取請求中的KEY與索引信息中的KEY比較,若與所述數(shù)據(jù)讀取請求中的KEY相符,則要讀取的數(shù)據(jù)存在?;?,接收數(shù)據(jù)刪除請求,若要存取的數(shù)據(jù)為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)刪除請求中的KEY,刪除內(nèi)存中的數(shù)據(jù),所述刪除包括根據(jù)數(shù)據(jù)刪除請求中的KEY,查詢內(nèi)存中的數(shù)據(jù)的KEY,若有與所述數(shù)據(jù)刪除請求中的KEY相符的,則確定要刪除的數(shù)據(jù)存在,然后刪除內(nèi)存中的數(shù)據(jù),否則,要刪除的數(shù)據(jù)不存在,刪除失敗?;蛘撸嫒〉臄?shù)據(jù)為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)刪除請求中的KEY,先刪除硬盤中的數(shù)據(jù),然后刪除內(nèi)存中的數(shù)據(jù),所述刪除過程與內(nèi)存存儲模式的刪除過程相同,在此不再贅述;或者,要存取的數(shù)據(jù)為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中的索引信息確定要刪除的數(shù)據(jù)是否存在,若要刪除的數(shù)據(jù)存在,則根據(jù)索引信息中數(shù)據(jù)的存儲位置刪除數(shù)據(jù),并刪除該數(shù)據(jù)對應(yīng)的索引信息,若要刪除的數(shù)據(jù)不存在,則不進(jìn)行刪除操作。所述確定要刪除的數(shù)據(jù)是否存在,與接收數(shù)據(jù)讀取請求且要存取的數(shù)據(jù)為內(nèi)存加固態(tài)硬盤存儲模式時,確定要讀取的數(shù)據(jù)是否存在的過程相同,在此不再贅述。步驟103、服務(wù)器節(jié)點向客戶端回復(fù)存取結(jié)果。所述存取結(jié)果包括接收數(shù)據(jù)更新請求時,將已更新的消息返回給客戶端,接收數(shù)據(jù)讀取請求時,將讀取的數(shù)據(jù)返回給客戶端,若要讀取的數(shù)據(jù)不存在,則向客戶端返回數(shù)據(jù)不存在的消息;接收數(shù)據(jù)刪除請求時,將客戶端返回數(shù)據(jù)已刪除的消息,若數(shù)據(jù)不存在,則向客戶端返回數(shù)據(jù)不存在的消息。
基于上述方法,本發(fā)明還提供了一種分布式緩存系統(tǒng)數(shù)據(jù)存取的裝置,如圖2所示,該裝置包括數(shù)據(jù)存取模塊201、信息反饋模塊202 ;數(shù)據(jù)存取模塊201,用于接收客戶端發(fā)送的數(shù)據(jù)存取請求,根據(jù)數(shù)據(jù)存取請求獲取要存取的數(shù)據(jù)的存取模式,根據(jù)存取模式存取數(shù)據(jù),并將存取結(jié)果發(fā)送給信息反饋模塊202 ;信息反饋模塊202,用于將存取結(jié)果發(fā)送給客戶端。所述數(shù)據(jù)存取模塊201包括存取模式單元2011、數(shù)據(jù)更新單元2012、數(shù)據(jù)讀取單元2013以及數(shù)據(jù)刪除單元2014 ;所述存取模式單元2011,用于讀取數(shù)據(jù)存取請求中的應(yīng)用ID,根據(jù)配置的應(yīng)用ID與存儲模式的對應(yīng)關(guān)系,獲取要存取的數(shù)據(jù)的存儲模式,接收數(shù)據(jù)更新請求,將獲取的存儲模式及數(shù)據(jù)更新請求發(fā)送給數(shù)據(jù)更新單元2012 ;或,接收數(shù)據(jù)讀取請求,將所述數(shù)據(jù)讀取請求及獲取的存儲模式發(fā)送給數(shù)據(jù)讀取單元2013 ;或,接收數(shù)據(jù)刪除請求,將所述數(shù)據(jù)刪 除請求及獲取的存儲模式發(fā)送給數(shù)據(jù)刪除單元2014。數(shù)據(jù)更新單元2012,用于獲取的存儲模式為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)更新請求中的KEY及Value,更新內(nèi)存中的數(shù)據(jù);或者,為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)更新請求中數(shù)據(jù)的KEY及Value更新硬盤中數(shù)據(jù),然后,更新內(nèi)存中的數(shù)據(jù);或者,為內(nèi)存加固態(tài)硬盤存儲模式,確定內(nèi)存中有剩余空間,更新內(nèi)存中的數(shù)據(jù),否則,釋放內(nèi)存空間,然后更新內(nèi)存中的數(shù)據(jù)。數(shù)據(jù)讀取單元2013,用于獲取的存儲模式為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)讀取請求中的KEY,讀取內(nèi)存中的數(shù)據(jù);或者,為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)讀取請求中的KEY,先從內(nèi)存讀取數(shù)據(jù),若內(nèi)存中沒有要讀取的數(shù)據(jù),則從硬盤中讀取數(shù)據(jù),并緩存到內(nèi)存中;或者,為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中索引信息確定要讀取的數(shù)據(jù)存在,然后根據(jù)索引信息確定數(shù)據(jù)的存儲位置,讀取數(shù)據(jù)。所述數(shù)據(jù)刪除單元2014,用于獲取的存儲模式為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)刪除請求中的KEY,刪除內(nèi)存中的數(shù)據(jù);或者,為內(nèi)存加普通硬盤存儲模式,根據(jù)所述KEY,先刪除普通硬盤中的數(shù)據(jù),進(jìn)一步刪除內(nèi)存中的數(shù)據(jù);或者,為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中的索引信息確定要刪除的數(shù)據(jù)存在,根據(jù)索引信息中數(shù)據(jù)的存儲位置,刪除數(shù)據(jù),并刪除該數(shù)據(jù)對應(yīng)的索引信息。所述數(shù)據(jù)更新單元2012具體用于,根據(jù)內(nèi)存中保存的內(nèi)存容量信息,確定內(nèi)存中是否有剩余空間,若沒有剩余空間,通過LRU算法將內(nèi)存中保存時間最早的數(shù)據(jù)移到快速固態(tài)硬盤,用以釋放內(nèi)存空間。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.ー種分布式緩存系統(tǒng)數(shù)據(jù)存取的方法,其特征在于,該方法包括 服務(wù)器節(jié)點接收客戶端發(fā)送的數(shù)據(jù)存取請求,根據(jù)數(shù)據(jù)存取請求確定所存取數(shù)據(jù)的存儲模式,根據(jù)存儲模式存取數(shù)據(jù),井向客戶端返回存取結(jié)果。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述根據(jù)數(shù)據(jù)存取請求確定所存取數(shù)據(jù)的存儲模式包括 讀取數(shù)據(jù)存取請求中的應(yīng)用標(biāo)識ID,根據(jù)本地配置的應(yīng)用ID與存儲模式的對應(yīng)關(guān)系,獲取所存取數(shù)據(jù)的存儲模式。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述根據(jù)存儲模式存取數(shù)據(jù)包括 接收數(shù)據(jù)更新請求, 確定為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)更新請求中的鍵KEY及值Value,更新內(nèi)存中的數(shù)據(jù);或, 確定為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)更新請求中的KEY及Value,更新硬盤中的數(shù)據(jù),然后更新內(nèi)存中的數(shù)據(jù);或, 確定為內(nèi)存加固態(tài)硬盤模式,確定內(nèi)存中有剰余空間,更新內(nèi)存中的數(shù)據(jù),否則,釋放內(nèi)存空間,然后更新內(nèi)存中的數(shù)據(jù)。
4.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述根據(jù)存儲模式存取數(shù)據(jù)包括 接收數(shù)據(jù)讀取請求, 確定為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)讀取請求中的KEY,讀取內(nèi)存中的數(shù)據(jù);或, 確定為內(nèi)存加普通硬盤存儲模式,根據(jù)所述KEY讀取內(nèi)存中的數(shù)據(jù),若內(nèi)存中沒有要讀取的數(shù)據(jù),則從硬盤中讀取數(shù)據(jù);或, 確定為內(nèi)存加固態(tài)硬盤模式,根據(jù)內(nèi)存中的索引信息確定要讀取的數(shù)據(jù)存在,然后根據(jù)索引信息確定數(shù)據(jù)的存儲位置,讀取數(shù)據(jù)。
5.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述根據(jù)存儲模式存取數(shù)據(jù)包括 接收數(shù)據(jù)刪除請求, 確定為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)刪除請求中的KEY,刪除內(nèi)存中的數(shù)據(jù);或, 確定為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)刪除請求中的KEY先刪除硬盤中的數(shù)據(jù),然后刪除內(nèi)存中的數(shù)據(jù);或, 確定為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中的索引信息確定要刪除的數(shù)據(jù)存在,根據(jù)索引信息中數(shù)據(jù)的存儲位置,刪除數(shù)據(jù)。
6.ー種分布式緩存系統(tǒng)數(shù)據(jù)存取的裝置,其特征在于,該裝置包括數(shù)據(jù)存取模塊、信息反饋模塊; 數(shù)據(jù)存取模塊,用于接收客戶端發(fā)送的數(shù)據(jù)存取請求,根據(jù)數(shù)據(jù)存取請求獲取要存取的數(shù)據(jù)的存儲模式,根據(jù)存儲模式存取數(shù)據(jù),并將存取結(jié)果發(fā)送給信息反饋模塊; 信息反饋模塊,用于將存取結(jié)果返回客戶端。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在干,所述數(shù)據(jù)存取模塊具體包括存取模式單元、數(shù)據(jù)更新単元、數(shù)據(jù)讀取單元以及數(shù)據(jù)刪除単元; 存取模式単元,用于讀取數(shù)據(jù)存取請求中的應(yīng)用ID,根據(jù)本地配置的應(yīng)用ID與存儲模式的對應(yīng)關(guān)系,獲取所存取數(shù)據(jù)的存儲模式,接收數(shù)據(jù)更新請求,將獲取的存儲模式及數(shù)據(jù)更新請求發(fā)送給數(shù)據(jù)更新単元;接收數(shù)據(jù)讀取請求,將所述數(shù)據(jù)讀取請求及獲取的存儲模式發(fā)送給數(shù)據(jù)讀取単元;接收數(shù)據(jù)刪除請求,將所述數(shù)據(jù)刪除請求及獲取的存儲模式發(fā)送給數(shù)據(jù)刪除單元。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在干, 所述數(shù)據(jù)更新単元,用于獲取的存儲模式為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)更新請求中的KEY及Value,更新內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加普通硬盤存儲模式,根據(jù)數(shù)據(jù)更新請求中數(shù)據(jù)的KEY及Value,更新硬盤中數(shù)據(jù),然后,更新內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加固態(tài)硬盤存儲模式,確定內(nèi)存中有剩余空間,更新內(nèi)存中的數(shù)據(jù),否則,釋放內(nèi)存空間,然后更新內(nèi)存中的數(shù)據(jù)。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在干, 所述數(shù)據(jù)讀取單元,用于獲取的存儲模式為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)讀取請求中的KEY,讀取內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加普通硬盤存儲模式,根據(jù)所述KEY,根據(jù)數(shù)據(jù)讀取請求中的KEY,先從內(nèi)存讀取數(shù)據(jù),若內(nèi)存中沒有要讀取的數(shù)據(jù),則從硬盤中讀取數(shù)據(jù),并緩存到內(nèi)存中;或,為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中索引信息確定要讀取的數(shù)據(jù)存在,然后根據(jù)索引信息確定數(shù)據(jù)的存儲位置,讀取數(shù)據(jù)。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在干, 所述數(shù)據(jù)刪除單元,用于獲取的存儲模式為內(nèi)存存儲模式,根據(jù)數(shù)據(jù)刪除請求中的KEY,刪除內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加普通硬盤存儲模式,根據(jù)所述KEY,先刪除普通硬盤中的數(shù)據(jù),進(jìn)ー步刪除內(nèi)存中的數(shù)據(jù);或,為內(nèi)存加固態(tài)硬盤存儲模式,根據(jù)內(nèi)存中的索引信息確定要刪除的數(shù)據(jù)存在,根據(jù)索引信息中數(shù)據(jù)的存儲位置,刪除數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種分布式緩存系統(tǒng)數(shù)據(jù)存取的方法,該方法包括服務(wù)器節(jié)點接收客戶端發(fā)送的數(shù)據(jù)存取請求,根據(jù)數(shù)據(jù)存取請求確定所存取數(shù)據(jù)的存儲模式,根據(jù)存儲模式存取數(shù)據(jù),并向客戶端返回存取結(jié)果。本發(fā)明還公開了一種分布式緩存系統(tǒng)數(shù)據(jù)存取的裝置,采用本發(fā)明所述的方法及裝置,提升了數(shù)據(jù)的存取效率,并提高了分布式緩存系統(tǒng)的性價比。
文檔編號H04L29/08GK102694828SQ20111007019
公開日2012年9月26日 申請日期2011年3月23日 優(yōu)先權(quán)日2011年3月23日
發(fā)明者李豪偉, 郭斌, 韓銀俊 申請人:中興通訊股份有限公司