欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種分布式的大數(shù)據(jù)分類檢索網(wǎng)頁(yè)的響應(yīng)方法

文檔序號(hào):6551944閱讀:200來(lái)源:國(guó)知局
一種分布式的大數(shù)據(jù)分類檢索網(wǎng)頁(yè)的響應(yīng)方法
【專利摘要】本發(fā)明公開(kāi)了一種分布式的大數(shù)據(jù)分類檢索網(wǎng)頁(yè)的響應(yīng)方法,屬于Web訪問(wèn)【技術(shù)領(lǐng)域】,包括以下步驟:S1:?jiǎn)?dòng)分布式服務(wù)器,根據(jù)Hash?Code將頁(yè)面按關(guān)鍵字分類,將從數(shù)據(jù)庫(kù)中檢索出的數(shù)據(jù)緩存在各服務(wù)器中;S2:當(dāng)用戶請(qǐng)求到達(dá)時(shí),先檢查其檢索條件,將用戶請(qǐng)求的關(guān)鍵字根據(jù)Hash?Code來(lái)選擇匹配的服務(wù)器;S3:刷新內(nèi)存中的數(shù)據(jù),并作廢之前緩存的頁(yè)面。本發(fā)明的有益效果如下:能夠有效的提高大數(shù)據(jù)的分類檢索頁(yè)面響應(yīng)速度,減輕數(shù)據(jù)庫(kù)壓力,減少服務(wù)器負(fù)擔(dān)。
【專利說(shuō)明】一種分布式的大數(shù)據(jù)分類檢索網(wǎng)頁(yè)的響應(yīng)方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于Web訪問(wèn)【技術(shù)領(lǐng)域】,具體涉及一種分布式的大數(shù)據(jù)分類檢索網(wǎng)頁(yè)的響應(yīng)方法。

【背景技術(shù)】
[0002]隨著云技術(shù)和互聯(lián)網(wǎng)絡(luò)的蓬勃發(fā)展,人們?cè)絹?lái)越愿意使用網(wǎng)絡(luò)來(lái)處理日常事務(wù),社會(huì)生活各方面的數(shù)據(jù)信息越來(lái)越集中,同時(shí),數(shù)據(jù)量也大量增長(zhǎng),因此許多系統(tǒng)和平臺(tái)都將面臨海量數(shù)據(jù)。這對(duì)Web應(yīng)用提出了更高的要求。在Web應(yīng)用中,大都需要把大量數(shù)據(jù)進(jìn)行分布式存儲(chǔ),從而提高數(shù)據(jù)的檢索速度,快速地響應(yīng)用戶的需求,給用戶帶來(lái)更好的體驗(yàn)。
[0003]然而,對(duì)于這些大數(shù)據(jù)如果只是簡(jiǎn)單的分布式處理,由于分布的服務(wù)器眾多數(shù)據(jù)的分散也將導(dǎo)致檢索準(zhǔn)確率下降,從而降低了響應(yīng)速度,這將給用戶帶來(lái)非常不好的體驗(yàn)。如果大量用戶同時(shí)在線檢索數(shù)據(jù),會(huì)給服務(wù)器帶來(lái)更大的壓力。因此,在分布式技術(shù)的基礎(chǔ)上,將數(shù)據(jù)進(jìn)行分類緩存,快速檢索,從而達(dá)到快速響應(yīng)。
[0004]現(xiàn)有技術(shù)存在問(wèn)題歸納如下:
[0005]第一,基于服務(wù)器端的動(dòng)態(tài)頁(yè)面緩存,并沒(méi)有利用分布式分類檢索的特點(diǎn),讀數(shù)據(jù)進(jìn)行分布式緩存。
[0006]第二,一般只能對(duì)靜態(tài)頁(yè)面進(jìn)行部分緩存,不能處理分布式的數(shù)據(jù)存儲(chǔ)動(dòng)態(tài)頁(yè)面檢索。
[0007]第三,基于一臺(tái)服務(wù)器,將頁(yè)面緩存在服務(wù)器端,將所有可能訪問(wèn)的頁(yè)面進(jìn)行緩存,大量的占用了服務(wù)器的處理時(shí)間和存儲(chǔ)空間。


【發(fā)明內(nèi)容】

[0008]本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足,提供了一種分布式的大數(shù)據(jù)分類檢索網(wǎng)頁(yè)的響應(yīng)方法,能夠有效的提高大數(shù)據(jù)的分類檢索頁(yè)面響應(yīng)速度,減輕數(shù)據(jù)庫(kù)壓力,減少服務(wù)器負(fù)擔(dān)。
[0009]為解決以上問(wèn)題,本發(fā)明采用的技術(shù)方案如下:一種分布式的大數(shù)據(jù)分類檢索網(wǎng)頁(yè)的響應(yīng)方法,包括以下步驟:s1:啟動(dòng)分布式服務(wù)器,根據(jù)Hash Code(JAVA中的編碼方式)將頁(yè)面按關(guān)鍵字分類,將從數(shù)據(jù)庫(kù)中檢索出的數(shù)據(jù)緩存在各服務(wù)器中;
[0010]S2:當(dāng)用戶請(qǐng)求到達(dá)時(shí),先檢查其檢索條件,將用戶請(qǐng)求的關(guān)鍵字根據(jù)HashCode來(lái)選擇匹配的服務(wù)器,然后在該服務(wù)器的緩存中查找是否存在有效的頁(yè)面緩存,如果存在,則直接將有效的頁(yè)面作為結(jié)果返回;如果不存在,則查找有效的頁(yè)面緩存,將查找到的頁(yè)面作為結(jié)果返回,并緩存查找到的頁(yè)面。
[0011]S3:刷新內(nèi)存中的數(shù)據(jù),并作廢之前緩存的頁(yè)面。
[0012]作為優(yōu)選:分類檢索時(shí),對(duì)S2所述的緩存數(shù)據(jù)建立索引。
[0013]作為優(yōu)選:S2所述的建立索引的步驟如下:
[0014]S21.循環(huán)遍歷內(nèi)存中的所有緩存數(shù)據(jù),讀取某一數(shù)據(jù)記錄為N,獲得其分類字段對(duì)應(yīng)的值,記錄為key ;
[0015]S22.從分類索引表indexTable中,找到分類值為對(duì)應(yīng)key的索引列表indexListο
[0016]S23.在該索引列表indexList中插入記錄,并編號(hào)為N。
[0017]作為優(yōu)選:生成數(shù)據(jù)緩存和為數(shù)據(jù)建立索引的時(shí)候,需要將緩存數(shù)據(jù)和索引數(shù)據(jù)上鎖,一臺(tái)服務(wù)器中只允許一個(gè)線程讀寫(xiě)內(nèi)存中的緩存和為數(shù)據(jù)建立索引。
[0018]作為優(yōu)選:所述的頁(yè)面緩存是采用xml的記錄形式。
[0019]作為優(yōu)選:在內(nèi)存中建立一張Hash表,Hash表用來(lái)記錄數(shù)據(jù)是否存在緩存中并指出其緩存內(nèi)容所存在的位置。
[0020]作為優(yōu)選:S3所述的內(nèi)存數(shù)據(jù)的刷新方式為實(shí)時(shí)刷新或定時(shí)刷新。
[0021]本發(fā)明的有益效果如下:將需要檢索的數(shù)據(jù)以xml的形式緩存在內(nèi)存中,這樣數(shù)據(jù)的檢索就不用在數(shù)據(jù)庫(kù)里查詢,而是在內(nèi)存中的xml文件中查詢。這么做不僅大大減輕了數(shù)據(jù)庫(kù)的負(fù)擔(dān),同時(shí)也加快了數(shù)據(jù)查詢的速度,挺高了系統(tǒng)性能。在服務(wù)器上將各種查詢過(guò)的分類檢索的結(jié)果緩存起來(lái),不用每次檢索時(shí)都對(duì)內(nèi)存數(shù)據(jù)進(jìn)行一次查詢,而是直接將返回的結(jié)果緩存起來(lái),從而提高了響應(yīng)速度。

【專利附圖】

【附圖說(shuō)明】
[0022]圖1是分布式分類檢索快速響應(yīng)的流程圖;
[0023]圖2是數(shù)據(jù)在內(nèi)存中緩存的示意圖;
[0024]圖3是分類索引表的結(jié)構(gòu);
[0025]圖4是緩存的分類數(shù)據(jù)建立索引的流程圖;
[0026]圖5是兩種分類組合檢索的流程圖;
[0027]圖6是獲得和生廣緩存的流程圖;
[0028]圖7是整個(gè)系統(tǒng)的架構(gòu)圖。

【具體實(shí)施方式】
[0029]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。
[0030]一種分布式的大數(shù)據(jù)分類檢索網(wǎng)頁(yè)的響應(yīng)方法,其特征在于,包括以下步驟:S1:啟動(dòng)分布式服務(wù)器,根據(jù)Hash Code將頁(yè)面按關(guān)鍵字分類,將從數(shù)據(jù)庫(kù)中檢索出的數(shù)據(jù)緩存在各服務(wù)器中;
[0031]S2:當(dāng)用戶請(qǐng)求到達(dá)時(shí),先檢查其檢索條件,將用戶請(qǐng)求的關(guān)鍵字根據(jù)HashCode來(lái)選擇匹配的服務(wù)器,然后在該服務(wù)器的緩存中查找是否存在有效的頁(yè)面緩存,如果存在,則直接將有效的頁(yè)面作為結(jié)果返回;如果不存在,則查找有效的頁(yè)面緩存,將查找到的頁(yè)面作為結(jié)果返回,并緩存查找到的頁(yè)面。
[0032]S3:刷新內(nèi)存中的數(shù)據(jù),并作廢之前緩存的頁(yè)面。
[0033]分類檢索時(shí),對(duì)S2所述的緩存數(shù)據(jù)建立索引。
[0034]S2所述的建立索引的步驟如下:
[0035]S21.循環(huán)遍歷內(nèi)存中的所有緩存數(shù)據(jù),讀取某一數(shù)據(jù)記錄為N,獲得其分類字段對(duì)應(yīng)的值,記錄為key ;
[0036]S22.從分類索引表indexTable中,找到分類值為對(duì)應(yīng)key的索引列表indexListο
[0037]S23.在該索引列表indexList中插入記錄,并編號(hào)為N。
[0038]生成數(shù)據(jù)緩存和為數(shù)據(jù)建立索引的時(shí)候,需要將緩存數(shù)據(jù)和索引數(shù)據(jù)上鎖,一臺(tái)服務(wù)器中只允許一個(gè)線程讀寫(xiě)內(nèi)存中的緩存和為數(shù)據(jù)建立索引。
[0039]所述的頁(yè)面緩存是采用xml的記錄形式。
[0040]在內(nèi)存中建立一張Hash表,Hash表用來(lái)記錄數(shù)據(jù)是否存在緩存中并指出其緩存內(nèi)容所存在的位置。
[0041]S3所述的內(nèi)存數(shù)據(jù)的刷新方式為實(shí)時(shí)刷新或定時(shí)刷新。
[0042]具體實(shí)施例:
[0043]圖1描述了如何利用緩存數(shù)據(jù)和頁(yè)面緩存,得到用戶請(qǐng)求的分類檢索頁(yè)面的流程,具體實(shí)現(xiàn)如下:
[0044]步驟101:用戶請(qǐng)求某種分類索引的頁(yè)面。
[0045]步驟102:根據(jù)用戶請(qǐng)求分類的關(guān)鍵字計(jì)算哈希值,找到該分類所屬的服務(wù)器。
[0046]步驟103:服務(wù)器收到請(qǐng)求后,判斷是否存在這種分類檢索條件的緩存,如果緩存存在,則直接將緩存作為結(jié)果返回,請(qǐng)求結(jié)束;如果不存在,則執(zhí)行步驟104。
[0047]Xml可以緩存在內(nèi)存中,也可以緩存在磁盤(pán)上。這取決于在一定時(shí)間內(nèi)生成的xml文件的數(shù)量。如果文件數(shù)量不是很多,那么可以直接將文件緩存在內(nèi)存中,這樣可以提高讀寫(xiě)速度,更快地響應(yīng)用戶請(qǐng)求;如果文件數(shù)量很大的話,再將文件緩存在內(nèi)存中就會(huì)耗費(fèi)大量的內(nèi)存,影響系統(tǒng)的性能了,所以這個(gè)時(shí)候應(yīng)該將頁(yè)面文件緩存在磁盤(pán)中,但是內(nèi)存中仍要記錄已經(jīng)生成的頁(yè)面緩存,方便更快的查找有效的磁盤(pán)緩存。
[0048]因此,不管頁(yè)面文件緩存在內(nèi)存中,還是磁盤(pán)中。內(nèi)存中都要建立一張Hash表,用來(lái)檢索用戶請(qǐng)求的關(guān)鍵字內(nèi)容的位置。Hash表中的關(guān)鍵字保存了各種檢索條件,Hash表中的value字段保存了對(duì)應(yīng)檢索條件的頁(yè)面緩存時(shí)候已經(jīng)生成或直接保存的頁(yè)面內(nèi)容。所以可以直接根據(jù)hash值找到內(nèi)存中的緩存或在磁盤(pán)上的緩存頁(yè)面。
[0049]頁(yè)面的緩存方式可以通過(guò)配置來(lái)更改,系統(tǒng)管理員在實(shí)際的運(yùn)行情況下進(jìn)行調(diào)整,以使系統(tǒng)性能達(dá)到最佳。
[0050]步驟104:判斷用戶請(qǐng)求的數(shù)據(jù)是否加載到內(nèi)存中,如果已存在內(nèi)存中,則執(zhí)行步驟105,如果請(qǐng)求的數(shù)據(jù)不在內(nèi)存中,則執(zhí)行步驟106。
[0051]步驟105:加載內(nèi)存數(shù)據(jù)緩存并建立索引。
[0052]從數(shù)據(jù)庫(kù)中查詢得到需要提供給用戶檢索的數(shù)據(jù),進(jìn)行緩存。內(nèi)存數(shù)據(jù)緩存結(jié)構(gòu)示意圖,如圖2所示,它示出了數(shù)據(jù)是如何在內(nèi)存中存儲(chǔ)的。數(shù)據(jù)已記錄為單位存儲(chǔ)于列表中,并被編上編號(hào),以方便建立索引。
[0053]圖4示出了建立分類索引的一種流程。從步驟401的N為O開(kāi)始,402若N不小于記錄數(shù),結(jié)束。步驟403循環(huán)遍歷加載于內(nèi)存中的緩存數(shù)據(jù)記錄,讀取記錄N ;得到分類X對(duì)應(yīng)的字段的值,即分類X的分類值(keyX),如步驟404所示。步驟405,從分類X的索引表(indexTableX)中找到該分類值(keyX)的索引列表(indexListX)。索引表可采用Hash表的形式存儲(chǔ),如圖3所示,分類X的索引表的索引表(indexTableX)的存儲(chǔ)結(jié)構(gòu)。Hash表中的鍵值(key)保存了該分類所有可能的分類的值keyXl,keyX2......keyXn ;Hash表中的值
(value)保存了對(duì)應(yīng)分類值的索引列表,索引列表以列表的形式存儲(chǔ),記錄了分類X對(duì)應(yīng)字段的值為該分類值的記錄編號(hào)。這樣就可以用Hash算法在分類X的索引表(indexTableX)中,快速的找到分類值(keyXn)的索引列表(indexListX)。然后,如步驟406所示,在該索引列表QndexListXn)中插入記錄編號(hào)N,這樣就為記錄N建立了分類X的索引。同樣的,步驟407到409建立了分類Y的索引。記錄N的索引建立完后,再建立N+1的索引,如步驟410。
[0054]需要注意的是,在生成內(nèi)存數(shù)據(jù)緩存和建立索引時(shí),需要將內(nèi)存數(shù)據(jù)緩存和索引鎖住,只允許一個(gè)線程執(zhí)行加載內(nèi)存數(shù)據(jù)緩存和建立索引的操作,不允許其他線程同時(shí)讀寫(xiě)緩存,否則會(huì)出現(xiàn)數(shù)據(jù)臟讀和重復(fù)加載等問(wèn)題。
[0055]步驟106:根據(jù)檢索條件,利用索引檢索內(nèi)存數(shù)據(jù)緩存,得到結(jié)果集。
[0056]結(jié)合圖5兩種分類組合檢索的流程圖,描述如何利用索引表,根據(jù)keyx和keyY這兩種分類檢索條件,檢索出從第startnum行(從I開(kāi)始計(jì)數(shù))到第endnum行結(jié)果集的一種過(guò)程。如步驟501所示,先根據(jù)分類X檢索條件keyX,在分類X索引表indexTableX中,得到索引列表indexListX,該列表中存儲(chǔ)了所有分類X所對(duì)應(yīng)字段的值為keyX的記錄編號(hào);如步驟502所示,再根據(jù)分類Y檢索條件keyY,在分類Y索引表indexTableY中,得到索引列表,該列表中存儲(chǔ)了所有分類Y對(duì)應(yīng)字段的值為KeyY的記錄編號(hào)。
[0057]然后,如步驟503-512所示,通過(guò)循環(huán)得到indexListX和indexListY的交集,即分類X對(duì)應(yīng)字段的值為keyY,分類Y對(duì)應(yīng)字段的值為keyY的記錄編號(hào)的集合列表。因?yàn)闄z索結(jié)果是分頁(yè)顯示的,所以只需要得到該交集中的第startnum行到第endnum行數(shù)據(jù),所以,如步驟511所示,在得到了第endnum行數(shù)據(jù)后就可以結(jié)束循環(huán),返回檢索結(jié)果。在得到滿足條件的記錄編號(hào)后,如步驟510所示,在內(nèi)存數(shù)據(jù)緩存表dataTable中,得到該編號(hào)的記錄,將其插入檢索結(jié)果列表中。循環(huán)結(jié)束就可以得到所要的檢索結(jié)果記錄集了。
[0058]如果只需要得到一種分類Z檢索的結(jié)果集,上述流程可以簡(jiǎn)化,只需要得到對(duì)應(yīng)索引列表indexListZ的第startnum行到第endnum行數(shù)據(jù)包含的記錄集即可。
[0059]步驟107:根據(jù)得到的記錄集,生成xml,將xml緩存,并將xml作為結(jié)果返回,響應(yīng)用戶請(qǐng)求,流程結(jié)束。
[0060]應(yīng)用xml作為頁(yè)面緩存的形式,使頁(yè)面緩存的字節(jié)數(shù)較小,并且可以直接將緩存作為響應(yīng),而無(wú)需再進(jìn)行計(jì)算。檢索結(jié)果的xml的結(jié)構(gòu)主要由data、curPage、redPerPage、redCount和extrainfo結(jié)點(diǎn)組成。其中每一個(gè)data結(jié)點(diǎn)描述了一條記錄,其子結(jié)點(diǎn)fieldl、field2, field3...fieIdN描述了該記錄中每個(gè)字段的值;curPage描述當(dāng)前頁(yè)號(hào);redPerPage描述每一頁(yè)的記錄數(shù);redCount描述了某一檢索在不分頁(yè)的情況下的記錄總數(shù);extralnf0用來(lái)描述一些頁(yè)面展示時(shí)需要的擴(kuò)展信息。
[0061]這種結(jié)構(gòu)的xml,叫完整的描述了檢索結(jié)果數(shù)據(jù),而且有效的減少了用于描述頁(yè)面展示格式的冗余信息,減少了緩存占用的空間。在xml中定義展示xml的xsl樣式表,如下所示:
[0062]< ? xml-stylesheet type =,,text/xsl,,href =,,style, xsl,,>
[0063]將這種結(jié)構(gòu)的xml發(fā)送到客戶端,瀏覽器使用xml中第一的xsl樣式表來(lái)轉(zhuǎn)換xml數(shù)據(jù),將檢索結(jié)果展示給用戶,滿足用戶的需求。
[0064]需要注意的是在生成頁(yè)面緩存是需要將頁(yè)面緩存記錄鎖住,只允許一個(gè)線程生成某一檢索條件的頁(yè)面緩存,不允許其他線程讀寫(xiě)該檢索條件的頁(yè)面緩存。具體的流程如圖6所示。
[0065]步驟601:請(qǐng)求某檢索條件的頁(yè)面緩存。
[0066]步驟602:鎖住頁(yè)面緩存Hash表。
[0067]步驟603:判斷該檢索條件的頁(yè)面緩存記錄是否被鎖住。如果已鎖,則執(zhí)行步驟604 ;如果未鎖住,則執(zhí)行步驟606。
[0068]步驟604:釋放頁(yè)面緩存Hash表的鎖。
[0069]步驟605:線程處于休息狀態(tài),等待被喚醒。線程被喚醒后,則執(zhí)行步驟602,繼續(xù)判斷該檢索條件的頁(yè)面緩存記錄是否被鎖住。
[0070]步驟606:判斷該檢索條件的頁(yè)面緩存是否已生成。如果已生成,則執(zhí)行步驟607 ;如果未生成,則執(zhí)行步驟609。
[0071]步驟607:釋放頁(yè)面緩存Hash表的所。
[0072]步驟608:讀取頁(yè)面緩存返回,流程結(jié)束。
[0073]步驟609:鎖定該檢索條件的頁(yè)面緩存記錄。
[0074]步驟610:釋放頁(yè)面緩存Hash表的鎖。
[0075]步驟611:生成xml,并緩存。
[0076]步驟612:鎖住頁(yè)面緩存Hash表。
[0077]步驟613:釋放該檢索條件的頁(yè)面緩存記錄的鎖,并記錄已生成的頁(yè)面緩存。
[0078]步驟614:釋放頁(yè)面緩存Hash表的鎖。
[0079]步驟615:喚醒其他處于休息狀態(tài)的線程,返回xml,流程結(jié)束。
[0080]采用上述流程來(lái)獲取和生成頁(yè)面緩存,不但能夠防止出現(xiàn)讀取臟數(shù)據(jù)及重復(fù)生成頁(yè)面緩存的問(wèn)題,而且因?yàn)椴捎昧擞涗浖?jí)的鎖,因此在生成某一檢索條件的xml時(shí),仍可以處理其他檢索條件的頁(yè)面緩存請(qǐng)求,提高了系統(tǒng)的并發(fā)處理能力,加快了響應(yīng)速度。
[0081]另外,需要實(shí)時(shí)或定時(shí)刷新內(nèi)存數(shù)據(jù)緩存。對(duì)于數(shù)據(jù)相對(duì)比較固定,更新較少的情況,可以采取實(shí)時(shí)刷新的策略,需要在程序變更相關(guān)數(shù)據(jù)的時(shí)候執(zhí)行刷新操作,清空或更新緩存的數(shù)據(jù)和頁(yè)面;而對(duì)于數(shù)據(jù)更新相對(duì)頻繁的系統(tǒng)來(lái)說(shuō),如果仍然采取實(shí)時(shí)刷新的策略,不但無(wú)法很好的緩存數(shù)據(jù)和頁(yè)面,而且會(huì)增加系統(tǒng)的開(kāi)銷,所以需要采用定時(shí)刷新的方式,需要設(shè)置一個(gè)定時(shí)任務(wù),定時(shí)將內(nèi)存數(shù)據(jù)緩存和頁(yè)面緩存清空。
[0082]如果采用定時(shí)刷新的策略,可通過(guò)配置來(lái)設(shè)置內(nèi)存數(shù)據(jù)緩存定時(shí)刷新的時(shí)間間隔。系統(tǒng)管理員在系統(tǒng)管理和維護(hù)中,可根據(jù)系統(tǒng)的性能和數(shù)據(jù)變化情況進(jìn)行調(diào)整,以達(dá)到最佳的用戶體驗(yàn)。
[0083]本領(lǐng)域的普通技術(shù)人員將會(huì)意識(shí)到,這里所述的實(shí)施例是為了幫助讀者理解本發(fā)明的實(shí)施方法,應(yīng)被理解為本發(fā)明的保護(hù)范圍并不局限于這樣的特別陳述和實(shí)施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開(kāi)的這些技術(shù)啟示做出各種不脫離本發(fā)明實(shí)質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種分布式的大數(shù)據(jù)分類檢索網(wǎng)頁(yè)的響應(yīng)方法,其特征在于,包括以下步驟: 51:啟動(dòng)分布式服務(wù)器,根據(jù)Hash Code將頁(yè)面按關(guān)鍵字分類,將從數(shù)據(jù)庫(kù)中檢索出的數(shù)據(jù)緩存在各服務(wù)器中; 52:當(dāng)用戶請(qǐng)求到達(dá)時(shí),先檢查其檢索條件,將用戶請(qǐng)求的關(guān)鍵字根據(jù)HashCode來(lái)選擇匹配的服務(wù)器,然后在該服務(wù)器的緩存中查找是否存在有效的頁(yè)面緩存,如果存在,則直接將有效的頁(yè)面作為結(jié)果返回;如果不存在,則查找有效的頁(yè)面緩存,將查找到的頁(yè)面作為結(jié)果返回,并緩存查找到的頁(yè)面。 53:刷新內(nèi)存中的數(shù)據(jù),并作廢之前緩存的頁(yè)面。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,分類檢索時(shí),對(duì)S2所述的緩存數(shù)據(jù)建立索引。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,S2所述的建立索引的步驟如下: 521.循環(huán)遍歷內(nèi)存中的所有緩存數(shù)據(jù),讀取某一數(shù)據(jù)記錄為N,獲得其分類字段對(duì)應(yīng)的值,記錄為key ; 522.從分類索引表indexTable中,找到分類值為對(duì)應(yīng)key的索引列表indexList。 523.在該索引列表indexList中插入記錄,并編號(hào)為N。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,生成數(shù)據(jù)緩存和為數(shù)據(jù)建立索引的時(shí)候,需要將緩存數(shù)據(jù)和索引數(shù)據(jù)上鎖,一臺(tái)服務(wù)器中只允許一個(gè)線程讀寫(xiě)內(nèi)存中的緩存和為數(shù)據(jù)建立索引。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述的頁(yè)面緩存是采用xml的記錄形式。
6.根據(jù)權(quán)利要求2-4任一項(xiàng)所述的方法,其特征在于,在內(nèi)存中建立一張Hash表,Hash表用來(lái)記錄數(shù)據(jù)是否存在緩存中并指出其緩存內(nèi)容所存在的位置。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,S3所述的內(nèi)存數(shù)據(jù)的刷新方式為實(shí)時(shí)刷新或定時(shí)刷新。
【文檔編號(hào)】G06F17/30GK104077397SQ201410310820
【公開(kāi)日】2014年10月1日 申請(qǐng)日期:2014年7月1日 優(yōu)先權(quán)日:2014年7月1日
【發(fā)明者】唐雪飛, 張小盼, 楚龍輝, 王淋銥 申請(qǐng)人:成都康賽信息技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
青河县| 全椒县| 寻乌县| 错那县| 岑巩县| 宁乡县| 汝州市| 塔城市| 夏津县| 寿光市| 盐亭县| 黄浦区| 昔阳县| 蒙城县| 黄冈市| 治多县| 巩留县| 郴州市| 峡江县| 红桥区| 阜平县| 泽州县| 射洪县| 铜陵市| 长宁区| 新野县| 仁化县| 德钦县| 惠安县| 南溪县| 河东区| 扬州市| 明溪县| 化德县| 康乐县| 华阴市| 龙海市| 秭归县| 武威市| 文成县| 宝山区|