專利名稱:基于散列算法的圖形圖像緩存方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種圖形圖像緩存方法。
背景技術(shù):
由于圖形圖像的數(shù)據(jù)量較大,在傳輸圖形圖像的數(shù)據(jù)時(shí),會對帶寬產(chǎn)生較大的壓力,通過緩存機(jī)制能夠極大的減少帶寬的壓力,以往的緩存方式,需要在客戶端和服務(wù)器端均維護(hù)一個(gè)緩存表,實(shí)現(xiàn)較為復(fù)雜,且需要使用緩存ID來遍歷整個(gè)緩存表,效率低下。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題,在于提供一種基于散列算法的圖形圖像緩存方法,可有效減小圖形圖像數(shù)據(jù)在傳輸過程中給帶寬帶來的壓力,且簡單高效。本發(fā)明是這樣實(shí)現(xiàn)的:一種基于散列算法的圖形圖像緩存方法,其特征在于:在服務(wù)器端構(gòu)建有Hash表和服務(wù)器端緩存數(shù)組,該Hash表用于檢測該圖形圖像數(shù)據(jù)是否被客戶端緩存,每一個(gè)表項(xiàng)存放了圖形圖像數(shù)據(jù)的特征值和圖形圖像數(shù)據(jù)在服務(wù)器端緩存數(shù)組中的緩存ID ;該服務(wù)器端緩存數(shù)組該數(shù)組存放了圖形圖像數(shù)據(jù)的緩存ID,用于同步客戶端的緩存數(shù)據(jù)和統(tǒng)計(jì)緩存信息;在客戶端構(gòu)建客戶端緩存數(shù)組,用于緩存圖形圖像數(shù)據(jù);服務(wù)器端將要發(fā)往客戶端的圖形圖像數(shù)據(jù)通過散列算法計(jì)算出HashID,再根據(jù)計(jì)算出的HashID,直接去Hash表中尋找對應(yīng)的表項(xiàng);如果對應(yīng)的表項(xiàng)存在,且該表項(xiàng)里的特征值與圖形圖像數(shù)據(jù)的特征值匹配,則直接發(fā)送表項(xiàng)中圖形圖像數(shù)據(jù)在服務(wù)器端緩存數(shù)組中的緩存ID到客戶端,客戶端通過緩存ID,直接從客戶端緩存數(shù)組中取出圖形圖像數(shù)據(jù);如果對應(yīng)的表項(xiàng)存在但圖形圖像特征值不匹配,或?qū)?yīng)的表項(xiàng)不存在,則在Hash表中分配一個(gè)新表項(xiàng),在新表項(xiàng)里存入該圖形圖像數(shù)據(jù)的特征值,并從服務(wù)器端緩存數(shù)組中申請一個(gè)空余項(xiàng),作為新表項(xiàng)里的圖形圖像在服務(wù)器端緩存數(shù)組中的緩存ID ;再將該圖形圖像數(shù)據(jù)和新表項(xiàng)里的緩存ID發(fā)送給客戶端,客戶端則根據(jù)接收到的緩存ID找到緩存數(shù)組的位置,并將圖形圖像數(shù)據(jù)存放到該位置。進(jìn)一步的,所述圖形圖像數(shù)據(jù)的特征值包括圖形圖像數(shù)據(jù)的長、寬以及格式。本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明方法服務(wù)器端的緩存數(shù)組里不需要存放圖形圖像數(shù)據(jù),只需存放一個(gè)圖形圖像數(shù)據(jù)的緩存標(biāo)識(即緩存ID),客戶端存放緩存的圖形圖像數(shù)據(jù),可有效減小圖形圖像數(shù)據(jù)在傳輸過程中給帶寬帶來的壓力;再因?yàn)樗芯彺娴膱D形圖像標(biāo)識都存放在服務(wù)器端的緩存數(shù)組中,那么對緩存數(shù)據(jù)的統(tǒng)計(jì),優(yōu)化和拋棄策略會容易而且簡潔;且客戶端不再需要維護(hù)緩存表,簡單高效;本發(fā)明還通過圖形圖像的特征數(shù)據(jù),有效的解決了 Hash表的沖突問題。
下面參照附圖結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步的說明。
圖1為本發(fā)明方法執(zhí)行流程圖。
具體實(shí)施例方式本發(fā)明的基于散列算法的圖形圖像緩存方法,是在服務(wù)器端構(gòu)建有Hash表和服務(wù)器端緩存數(shù)組,該Hash表用于檢測該圖形圖像數(shù)據(jù)是否被客戶端緩存,每一個(gè)表項(xiàng)存放了圖形圖像數(shù)據(jù)的特征值和圖形圖像數(shù)據(jù)在服務(wù)器端緩存數(shù)組中的緩存ID ;所述圖形圖像數(shù)據(jù)的特征值包括圖形圖像數(shù)據(jù)的長、寬以及格式。該服務(wù)器端緩存數(shù)組該數(shù)組存放了圖形圖像數(shù)據(jù)的緩存ID,用于同步客戶端的緩存數(shù)據(jù)和統(tǒng)計(jì)緩存信息,以便優(yōu)化緩存及緩存拋棄策略;在客戶端構(gòu)建客戶端緩存數(shù)組,用于緩存圖形圖像數(shù)據(jù)。如圖1所示,服務(wù)器端將要發(fā)往客戶端的圖形圖像數(shù)據(jù)通過散列算法計(jì)算出HashID,再根據(jù)計(jì)算出的HashID,直接去Hash表中尋找對應(yīng)的表項(xiàng);如果對應(yīng)的表項(xiàng)存在,且該表項(xiàng)里的特征值與圖形圖像數(shù)據(jù)的特征值匹配,則直接發(fā)送表項(xiàng)中圖形圖像數(shù)據(jù)在服務(wù)器端緩存數(shù)組中的緩存ID到客戶端,客戶端通過緩存ID,直接從客戶端緩存數(shù)組中取出圖形圖像數(shù)據(jù);如果對應(yīng)的表項(xiàng)存在但圖形圖像特征值不匹配,或?qū)?yīng)的表項(xiàng)不存在,說明客戶端沒有緩存過該圖形圖像數(shù)據(jù),則服務(wù)器端在Hash表中分配一個(gè)新表項(xiàng),在新表項(xiàng)里存入該圖形圖像數(shù)據(jù)的特征值,并從服務(wù)器端緩存數(shù)組中申請一個(gè)空余項(xiàng),作為新表項(xiàng)里的圖形圖像在服務(wù)器端緩存數(shù)組中的緩存ID ;再將該圖形圖像數(shù)據(jù)和新表項(xiàng)里的緩存ID發(fā)送給客戶端,客戶端則根據(jù)接收到的緩存ID找到緩存數(shù)組的位置,并將圖形圖像數(shù)據(jù)存放到該位置。如前所述,本發(fā)明通過在服務(wù)器端Hash表的表項(xiàng)中存放要緩存的圖形圖像特征值(包括圖形圖像的長、寬和格式)和在其服務(wù)器端緩存數(shù)組中存放緩存ID,將Hash表和數(shù)組結(jié)合起來,實(shí)現(xiàn)一種圖形圖像數(shù)據(jù)的緩存機(jī)制。對于客戶端而言,接收服務(wù)器端發(fā)送過來的數(shù)據(jù),如果是緩存ID,則直接從客戶端緩存數(shù)組中取出圖形圖像數(shù)據(jù),如果包含有緩存ID和圖形圖像數(shù)據(jù),則根據(jù)緩存ID找到緩存數(shù)組的位置,并將圖形圖像數(shù)據(jù)存放到該位置。其不再需要維護(hù)緩存表,實(shí)現(xiàn)簡單高效。本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明方法服務(wù)器端的緩存數(shù)組里不需要存放圖形圖像數(shù)據(jù),只需存放一個(gè)圖形圖像數(shù)據(jù)的緩存標(biāo)識(即緩存ID),客戶端存放緩存的圖形圖像數(shù)據(jù),可有效減小圖形圖像數(shù)據(jù)在傳輸過程中給帶寬帶來的壓力;再因?yàn)樗芯彺娴膱D形圖像標(biāo)識都存放在服務(wù)器端的緩存數(shù)組中,那么對緩存數(shù)據(jù)的統(tǒng)計(jì),優(yōu)化和拋棄策略會容易而且簡潔;且客戶端不再需要維護(hù)緩存表,簡單高效;本發(fā)明還通過圖形圖像的特征數(shù)據(jù),有效的解決了 Hash表的沖突問題。雖然以上描述了本發(fā)明的具體實(shí)施方式
,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。
權(quán)利要求
1.一種基于散列算法的圖形圖像緩存方法,其特征在于:在服務(wù)器端構(gòu)建有Hash表和服務(wù)器端緩存數(shù)組,該Hash表用于檢測該圖形圖像數(shù)據(jù)是否被客戶端緩存,每一個(gè)表項(xiàng)存放了圖形圖像數(shù)據(jù)的特征值和圖形圖像數(shù)據(jù)在服務(wù)器端緩存數(shù)組中的緩存ID ;該服務(wù)器端緩存數(shù)組該數(shù)組存放了圖形圖像數(shù)據(jù)的緩存ID,用于同步客戶端的緩存數(shù)據(jù)和統(tǒng)計(jì)緩存信息;在客戶端構(gòu)建客戶端緩存數(shù)組,用于緩存圖形圖像數(shù)據(jù); 服務(wù)器端將要發(fā)往客戶端的圖形圖像數(shù)據(jù)通過散列算法計(jì)算出HashID,再根據(jù)計(jì)算出的HashID,直接去Hash表中尋找對應(yīng)的表項(xiàng); 如果對應(yīng)的表項(xiàng)存在,且該表項(xiàng)里的特征值與圖形圖像數(shù)據(jù)的特征值匹配,則直接發(fā)送表項(xiàng)中圖形圖像數(shù)據(jù)在服務(wù)器端緩存數(shù)組中的緩存ID到客戶端,客戶端通過緩存ID,直接從客戶端緩存數(shù)組中取出圖形圖像數(shù)據(jù); 如果對應(yīng)的表項(xiàng)存在但圖形圖像特征值不匹配,或?qū)?yīng)的表項(xiàng)不存在,則在Hash表中分配一個(gè)新表項(xiàng),在新表項(xiàng)里存入該圖形圖像數(shù)據(jù)的特征值,并從服務(wù)器端緩存數(shù)組中申請一個(gè)空余項(xiàng),作為新表項(xiàng)里的圖形圖像在服務(wù)器端緩存數(shù)組中的緩存ID ;再將該圖形圖像數(shù)據(jù)和新表項(xiàng)里的緩存ID發(fā)送給客戶端,客戶端則根據(jù)接收到的緩存ID找到緩存數(shù)組的位置,并將圖形圖像數(shù)據(jù)存放到該位置。
2.根據(jù)權(quán)利要求1所述的基于散列算法的圖形圖像緩存方法,其特征在于:所述圖形圖像數(shù)據(jù)的特征值包括圖形圖像數(shù)據(jù)的長、寬以及格式。
全文摘要
本發(fā)明提供一種基于散列算法的圖形圖像緩存方法,在服務(wù)器端構(gòu)建有Hash表和服務(wù)器端緩存數(shù)組;在客戶端構(gòu)建客戶端緩存數(shù)組,用于緩存圖形圖像數(shù)據(jù),服務(wù)器端將要發(fā)往客戶端的圖形圖像數(shù)據(jù)計(jì)算出HashID,再根據(jù)HashID直接去Hash表中尋找對應(yīng)的表項(xiàng);如果找到,則直接發(fā)送緩存ID到客戶端,客戶端通過緩存ID,直接從客戶端緩存數(shù)組中取出圖形圖像數(shù)據(jù);如果找不到,則創(chuàng)建新表項(xiàng);再將該圖形圖像數(shù)據(jù)和新表項(xiàng)里的緩存ID發(fā)送給客戶端,由客戶端存放到指定位置。本發(fā)明將Hash表和數(shù)組結(jié)合起來,有效減小圖形圖像數(shù)據(jù)在傳輸過程中給帶寬帶來的壓力,且簡單高效。
文檔編號G06F17/30GK103118099SQ20131002955
公開日2013年5月22日 申請日期2013年1月25日 優(yōu)先權(quán)日2013年1月25日
發(fā)明者張輝 申請人:福建升騰資訊有限公司