專(zhuān)利名稱(chēng):一種實(shí)時(shí)更新緩存的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于搜索技術(shù)領(lǐng)域,尤其涉及一種實(shí)時(shí)更新緩存的方法和系統(tǒng)。
背景技術(shù):
目前,在移動(dòng)互聯(lián)的應(yīng)用業(yè)務(wù)中,關(guān)鍵字搜索是一個(gè)比較常見(jiàn)的業(yè)務(wù)。用戶提交關(guān)鍵字搜索,在服務(wù)器端需要做多個(gè)子產(chǎn)品匹配,如用戶搜索“劉德華”,服務(wù)器端需要匹配的子產(chǎn)品可能有音樂(lè)、鈴聲、電子書(shū)、視頻、圖片、新聞、八卦等。因?yàn)槊總€(gè)子產(chǎn)品資源記錄都是單獨(dú)存儲(chǔ)在一個(gè)數(shù)據(jù)表中的,所以,當(dāng)進(jìn)行關(guān)鍵字搜索時(shí),服務(wù)器需要分別對(duì)每一個(gè)子產(chǎn)品的數(shù)據(jù)表進(jìn)行搜索,最終才匯總出用戶需要的全部搜索結(jié)果?,F(xiàn)有技術(shù)的搜索方法主要包括兩種,第一種搜索方法為用戶每一次提交關(guān)鍵字搜索,服務(wù)器端都去各個(gè)子產(chǎn)品的數(shù)據(jù)表搜索結(jié)果。例如假定用戶提交的關(guān)鍵字需要匹配 10個(gè)子產(chǎn)品,每一個(gè)子產(chǎn)品數(shù)據(jù)表的模糊搜索都可能花費(fèi)1秒的時(shí)間,那么,10個(gè)子產(chǎn)品的數(shù)據(jù)表搜索就要花費(fèi)掉10秒左右的時(shí)間,而且是每一次用戶提交,都要重新進(jìn)行搜索,這種搜索方法會(huì)導(dǎo)致返回搜索結(jié)果太慢,影響用戶使用體驗(yàn),并增大數(shù)據(jù)庫(kù)的負(fù)荷。第二種搜索方法是第一種方法的優(yōu)化,采用一天過(guò)期的緩存機(jī)制。即將某個(gè)關(guān)鍵字搜索結(jié)果緩存起來(lái),待后面的用戶再來(lái)搜索該關(guān)鍵字時(shí),不用去數(shù)據(jù)表中搜索,直接將緩存中的搜索結(jié)果返回給用戶,同時(shí),為了保證數(shù)據(jù)更新,在一天后該關(guān)鍵字的緩存會(huì)刪除掉,當(dāng)用戶再來(lái)搜索該關(guān)鍵字時(shí),服務(wù)器端會(huì)重新去數(shù)據(jù)表中搜索結(jié)果返回給用戶,并將該搜索結(jié)果緩存起來(lái),重新實(shí)行一天過(guò)期的緩存機(jī)制。這種采用一天過(guò)期的緩存機(jī)制的方法雖然大大減少了返回搜索結(jié)果給部分用戶的時(shí)間和減少了數(shù)據(jù)庫(kù)的負(fù)荷,但當(dāng)數(shù)據(jù)表的資源記錄有變化(增加、修改和刪除)時(shí),緩存數(shù)據(jù)得不到實(shí)時(shí)的更新,每天還是至少有一個(gè)用戶需要花費(fèi)較長(zhǎng)的等待時(shí)間去數(shù)據(jù)表中重新搜索結(jié)果,也會(huì)影響用戶的使用體驗(yàn)。顯然, 這種關(guān)鍵字搜索方法還是有待優(yōu)化的。
發(fā)明內(nèi)容
本發(fā)明提供了一種實(shí)時(shí)更新緩存的方法和系統(tǒng),旨在解決的現(xiàn)有技術(shù)中由于緩存數(shù)據(jù)得不到實(shí)時(shí)更新影響用戶使用體驗(yàn)的問(wèn)題。本發(fā)明是這樣實(shí)現(xiàn)的,一種實(shí)時(shí)更新緩存的方法,包括步驟a 在資源管理服務(wù)器增加更新緩存功能;步驟b 判斷資源記錄是否發(fā)生變化,如果資源記錄發(fā)生變化,執(zhí)行步驟c ;如果資源記錄沒(méi)有發(fā)生變化,結(jié)束本次緩存更新;步驟c 將新的資源記錄加入數(shù)據(jù)庫(kù)中,并實(shí)時(shí)更新緩存列表中的緩存數(shù)據(jù)。本發(fā)明的技術(shù)方案還包括所述步驟C具體還包括獲取發(fā)生變化的資源記錄對(duì)應(yīng)的搜索關(guān)鍵字,并將該搜索關(guān)鍵字加入資源更新列表中。本發(fā)明的技術(shù)方案還包括所述步驟c具體還包括判斷緩存服務(wù)器中是否存在緩存列表,如果存在緩存列表,則遍歷緩存列表;如果不存在緩存列表,結(jié)束本次緩存更新。本發(fā)明的技術(shù)方案還包括所述步驟c具體還包括遍歷緩存列表,判斷緩存列表中是否有緩存關(guān)鍵字,如果緩存列表中沒(méi)有緩存關(guān)鍵字,結(jié)束本次緩存更新;如果緩存列表中有緩存關(guān)鍵字,取出一個(gè)緩存關(guān)鍵字,并判斷資源更新列表中是否包含該緩存關(guān)鍵字。本發(fā)明的技術(shù)方案還包括所述步驟c還包括如果資源更新列表中包含該緩存關(guān)鍵字,查詢數(shù)據(jù)庫(kù)重新搜索該緩存關(guān)鍵字對(duì)應(yīng)的新的搜索結(jié)果,刪除緩存列表中該緩存關(guān)鍵字的緩存數(shù)據(jù),將新的搜索結(jié)果加入到緩存列表中;如果關(guān)鍵字更新列表中不包含該緩存關(guān)鍵字,則重新遍歷緩存列表。本發(fā)明的技術(shù)方案還包括在所述步驟c后還包括接收用戶的關(guān)鍵字搜索請(qǐng)求, 判斷緩存服務(wù)器的緩存列表中是否存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,如果緩存列表中存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,從緩存列表中讀取該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果并輸出到移動(dòng)終端用戶;如果緩存列表中不存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,則通過(guò)查詢數(shù)據(jù)庫(kù)得到該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果,并將該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果加入緩存列表中,并輸出到移動(dòng)終端用戶。本發(fā)明采取的另一技術(shù)方案為一種實(shí)時(shí)更新緩存的系統(tǒng),包括緩存服務(wù)器、數(shù)據(jù)庫(kù)和資源管理服務(wù)器,所述緩存服務(wù)器用于緩存關(guān)鍵字以及該關(guān)鍵字所對(duì)應(yīng)的搜索結(jié)果; 所述資源管理服務(wù)器用于進(jìn)行資源編輯操作,所述資源管理服務(wù)器還包括緩存更新模塊, 所述緩存更新模塊包括第一判斷單元和數(shù)據(jù)更新單元,所述第一判斷單元用于判斷資源記錄是否發(fā)生變化,如果資源記錄發(fā)生變化,通過(guò)數(shù)據(jù)更新單元更新緩存數(shù)據(jù);如果資源記錄沒(méi)有發(fā)生變化,結(jié)束本次緩存更新;所述數(shù)據(jù)更新單元用于將新的資源記錄加入數(shù)據(jù)庫(kù)中,并實(shí)時(shí)更新緩存列表中的緩存數(shù)據(jù)。本發(fā)明的技術(shù)方案還包括所述實(shí)時(shí)更新緩存的系統(tǒng)還包括移動(dòng)終端和web服務(wù)器,所述移動(dòng)終端用于向Web服務(wù)器提交關(guān)鍵字請(qǐng)求搜索結(jié)果;所述Web服務(wù)器用于接收移動(dòng)終端提交的關(guān)鍵字搜索結(jié)果請(qǐng)求,并返回搜索結(jié)果給移動(dòng)終端。本發(fā)明的技術(shù)方案還包括所述緩存更新模塊還包括資源搜索單元,所述資源搜索單元用于通過(guò)搜索條件得出發(fā)生變化的資源記錄對(duì)應(yīng)的搜索關(guān)鍵字,并將該搜索關(guān)鍵字加入資源更新列表中。本發(fā)明的技術(shù)方案還包括所述緩存更新模塊還包括第二判斷單元、第三判斷單元和第四判斷單元,所述第二判斷單元用于判斷緩存服務(wù)器中是否存在緩存列表,如果存在緩存列表,通過(guò)第三判斷單元遍歷緩存列表;如果不存在緩存列表,結(jié)束本次緩存更新;所述第三判斷單元用于遍歷緩存列表,判斷緩存列表中是否有緩存關(guān)鍵字,如果緩存列表中有緩存關(guān)鍵字,通過(guò)第四判斷單元判斷資源更新列表中是否包含該緩存關(guān)鍵字;如果緩存列表中沒(méi)有緩存關(guān)鍵字,結(jié)束本次緩存更新;所述第四判斷單元用于取出一個(gè)緩存關(guān)鍵字,并判斷資源更新列表中是否包含該緩存關(guān)鍵字,如果資源更新列表中包含該緩存關(guān)鍵字,通過(guò)數(shù)據(jù)更新單元重新搜索數(shù)據(jù)庫(kù); 如果關(guān)鍵字更新列表中不包含該緩存關(guān)鍵字,則通過(guò)第三判斷單元重新遍歷緩存列表。本發(fā)明的技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果本發(fā)明實(shí)時(shí)更新緩存的方法和系統(tǒng)通過(guò)在資源管理服務(wù)器中增加更新緩存功能,當(dāng)資源有變化時(shí),程序會(huì)判斷變化的資源是否會(huì)影響到緩存列表中關(guān)鍵字的搜索結(jié)果,如果會(huì)影響,則資源管理后臺(tái)會(huì)重新搜索數(shù)據(jù)庫(kù)取得最新的搜索結(jié)果,并替換原來(lái)在緩存列表中的緩存數(shù)據(jù);本發(fā)明既可以保證發(fā)生變化的資源記錄能得到實(shí)時(shí)的更新,又不需要采用一天過(guò)期的機(jī)制,減少了服務(wù)器端每一天都要對(duì)所有關(guān)鍵字重新在數(shù)據(jù)庫(kù)中搜索花費(fèi)的時(shí)間,提升用戶的使用體驗(yàn)。
附圖1是本發(fā)明第一實(shí)施例的實(shí)時(shí)更新緩存的方法的流程圖;附圖2是本發(fā)明實(shí)時(shí)更新緩存的方法的用戶請(qǐng)求關(guān)鍵字搜索結(jié)果的過(guò)程的流程圖;附圖3是本發(fā)明第二實(shí)施例的實(shí)時(shí)更新緩存的方法的流程圖;附圖4是本發(fā)明第一實(shí)施例的實(shí)時(shí)更新緩存的系統(tǒng)的結(jié)構(gòu)示意圖;附圖5是本發(fā)明第二實(shí)施例的實(shí)時(shí)更新緩存的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請(qǐng)參閱圖1,是本發(fā)明第一實(shí)施例的實(shí)時(shí)更新緩存的方法的流程圖。本發(fā)明第一實(shí)施例的實(shí)時(shí)更新緩存的方法包括以下步驟步驟100 在資源管理服務(wù)器增加一個(gè)更新緩存功能;在步驟100中,資源管理服務(wù)器用于后臺(tái)編輯人員進(jìn)行資源編輯操作,現(xiàn)有的資源管理服務(wù)器只能做資源記錄的增加、修改和刪除操作,本發(fā)明則在資源管理服務(wù)器中增加一個(gè)更新緩存功能,該更新緩存功能在判斷到資源記錄有變化(增加、修改和刪除)時(shí), 會(huì)實(shí)時(shí)更新緩存服務(wù)器中緩存列表的緩存數(shù)據(jù);其中,緩存列表用于緩存關(guān)鍵字以及該關(guān)鍵字所對(duì)應(yīng)的搜索結(jié)果。步驟110 當(dāng)資源有變化時(shí),遍歷緩存列表的關(guān)鍵字,判斷變化的資源是否會(huì)影響到該關(guān)鍵字的搜索結(jié)果,如果影響到該關(guān)鍵字的搜索結(jié)果,執(zhí)行步驟120 ;如果沒(méi)有影響到該關(guān)鍵字的搜索結(jié)果,執(zhí)行步驟130 ;在步驟110中,資源的變化包括增加、修改或/和刪除等操作。步驟120 進(jìn)行該關(guān)鍵字的搜索請(qǐng)求,從數(shù)據(jù)表中取得最新的搜索結(jié)果,然后將這個(gè)搜索結(jié)果替換原來(lái)在緩存列表中的緩存數(shù)據(jù);步驟130 結(jié)束本次緩存更新。請(qǐng)參閱圖2,是本發(fā)明實(shí)時(shí)更新緩存的方法的用戶請(qǐng)求關(guān)鍵字搜索結(jié)果的過(guò)程的流程圖。是本發(fā)明實(shí)時(shí)更新緩存的方法的用戶請(qǐng)求關(guān)鍵字搜索結(jié)果的過(guò)程的包括以下步驟步驟200 通過(guò)移動(dòng)終端提交關(guān)鍵字請(qǐng)求搜索結(jié)果;步驟210 接收該關(guān)鍵字搜索結(jié)果請(qǐng)求;步驟220 判斷緩存服務(wù)器的緩存列表中是否存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,如果緩存列表中存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,執(zhí)行步驟230 ;如果緩存列表中不存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,執(zhí)行步驟MO ;其中,緩存列表用于緩存關(guān)鍵字以及該關(guān)鍵字所對(duì)應(yīng)的搜索結(jié)果。步驟230 從緩存列表中讀取該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果,并執(zhí)行步驟250 ;步驟MO 通過(guò)查詢數(shù)據(jù)庫(kù)得到該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果,并將該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果加入緩存列表中;步驟250 將該關(guān)鍵字搜索結(jié)果輸出到移動(dòng)終端用戶;步驟沈0 結(jié)束本次請(qǐng)求。請(qǐng)參閱圖3,是本發(fā)明第二實(shí)施例的實(shí)時(shí)更新緩存的方法的流程圖。本發(fā)明第二實(shí)施例的實(shí)時(shí)更新緩存的方法包括以下步驟步驟300 在資源管理服務(wù)器增加一個(gè)更新緩存功能;在步驟300中,資源管理服務(wù)器用于后臺(tái)編輯人員進(jìn)行資源編輯操作,現(xiàn)有的資源管理服務(wù)器只能做資源記錄的增加、修改和刪除操作,本發(fā)明則在資源管理服務(wù)器中增加一個(gè)更新緩存功能,該更新緩存功能在判斷到資源記錄有變化(增加、修改和刪除)時(shí), 會(huì)實(shí)時(shí)更新緩存服務(wù)器中緩存列表的緩存數(shù)據(jù);其中,緩存列表用于緩存關(guān)鍵字以及該關(guān)鍵字所對(duì)應(yīng)的搜索結(jié)果。步驟310 判斷資源記錄是否發(fā)生變化,如果資源記錄發(fā)生變化,執(zhí)行步驟320 ;如果資源記錄沒(méi)有發(fā)生變化,執(zhí)行步驟390 ;其中,資源記錄的變化包括增加、修改或/和刪除等操作。步驟320 將新的資源記錄加入數(shù)據(jù)庫(kù)中;步驟330 通過(guò)搜索條件得出發(fā)生變化的資源記錄對(duì)應(yīng)的搜索關(guān)鍵字,并將該搜索關(guān)鍵字加入資源更新列表中;其中,搜索條件包括資源記錄中的一個(gè)或多個(gè)字段,如在音樂(lè)搜索中,搜索關(guān)鍵字 “周杰倫”,服務(wù)器端會(huì)去匹配歌手名和歌曲名這二個(gè)字段。步驟340 判斷緩存服務(wù)器中是否存在緩存列表,如果存在緩存列表,執(zhí)行步驟 350 ;如果不存在緩存列表,執(zhí)行步驟390 ;步驟350 遍歷緩存列表,判斷緩存列表中是否有緩存關(guān)鍵字,如果緩存列表中有緩存關(guān)鍵字,執(zhí)行步驟360 ;如果緩存列表中沒(méi)有緩存關(guān)鍵字,執(zhí)行步驟390 ;步驟360 取出一個(gè)緩存關(guān)鍵字,并判斷資源更新列表中是否包含該緩存關(guān)鍵字, 如果資源更新列表中包含該緩存關(guān)鍵字,執(zhí)行步驟370 ;如果關(guān)鍵字更新列表中不包含該緩存關(guān)鍵字,則重新執(zhí)行步驟350 ;該步驟中,程序會(huì)判斷變化的資源記錄是否會(huì)影響到該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果, 如果資源更新列表中包含該緩存關(guān)鍵字,說(shuō)明變化的資源記錄會(huì)影響該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果,則資源管理后臺(tái)會(huì)做一個(gè)該關(guān)鍵字搜索請(qǐng)求,重新搜索數(shù)據(jù)表取得最新的搜索結(jié)果, 再將該搜索結(jié)果替換原來(lái)緩存列表中的緩存數(shù)據(jù);反之,如果資源更新列表中不包含該緩存關(guān)鍵字,則說(shuō)明變化的資源記錄不會(huì)影響該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果;其中,判斷變化的資源記錄是否會(huì)影響關(guān)鍵字搜索結(jié)果的具體判斷方式為在搜索業(yè)務(wù)中,服務(wù)器端會(huì)根據(jù)搜索關(guān)鍵字去匹配資源記錄中的一個(gè)或多個(gè)字段,如在音樂(lè)搜索中,用戶提交“周杰倫”關(guān)鍵字搜索,服務(wù)器端會(huì)用“周杰倫”這個(gè)關(guān)鍵字去匹配歌手名和歌曲名這二個(gè)字段,再將能匹配的資源記錄檢索出來(lái)提供給搜索用戶。反過(guò)來(lái),如果在資源管理后臺(tái)中修改(或增加) 了一條歌手名為“周杰倫”、歌曲名為“七里香”的資源記錄,可以得知,受影響的關(guān)鍵字搜索結(jié)果至少有“周杰倫”和“七里香”這二個(gè)關(guān)鍵字。步驟370 查詢數(shù)據(jù)庫(kù)重新搜索該緩存關(guān)鍵字對(duì)應(yīng)的新的搜索結(jié)果;步驟380 刪除緩存列表中該緩存關(guān)鍵字的緩存數(shù)據(jù),將新的搜索結(jié)果加入到緩存列表中,并重新執(zhí)行步驟350 ;步驟390 結(jié)束本次緩存更新。請(qǐng)參與圖4,是本發(fā)明第一實(shí)施例的實(shí)時(shí)更新緩存的系統(tǒng)的結(jié)構(gòu)示意圖。本發(fā)明第一實(shí)施例的實(shí)時(shí)更新緩存的系統(tǒng)包括移動(dòng)終端、web服務(wù)器、緩存服務(wù)器、數(shù)據(jù)庫(kù)和資源管理服務(wù)器,移動(dòng)終端用于向Web服務(wù)器提交關(guān)鍵字請(qǐng)求搜索結(jié)果;Web服務(wù)器用于接收移動(dòng)終端提交的關(guān)鍵字搜索結(jié)果請(qǐng)求,并返回搜索結(jié)果給移動(dòng)終端;緩存服務(wù)器中包括緩存列表,用于緩存關(guān)鍵字以及該關(guān)鍵字所對(duì)應(yīng)的搜索結(jié)果;資源管理服務(wù)器用于進(jìn)行資源編輯操作,資源管理服務(wù)器還包括緩存更新模塊, 緩存更新模塊包括第一判斷單元和數(shù)據(jù)更新單元,其中第一判斷單元用于判斷資源記錄是否發(fā)生變化,如果資源記錄發(fā)生變化,通過(guò)數(shù)據(jù)更新單元更新緩存數(shù)據(jù);如果資源記錄沒(méi)有發(fā)生變化,結(jié)束本次緩存更新;其中,資源記錄的變化包括增加、修改或/和刪除。數(shù)據(jù)更新單元用于將新的資源記錄加入數(shù)據(jù)庫(kù)中,并實(shí)時(shí)更新緩存列表中的緩存數(shù)據(jù)。請(qǐng)參與圖5,是本發(fā)明第二實(shí)施例的實(shí)時(shí)更新緩存的系統(tǒng)的結(jié)構(gòu)示意圖。本發(fā)明第二實(shí)施例的實(shí)時(shí)更新緩存的系統(tǒng)包括移動(dòng)終端、Web服務(wù)器、緩存服務(wù)器、數(shù)據(jù)庫(kù)和資源管理服務(wù)器,資源管理服務(wù)器包括緩存更新模塊,其中,移動(dòng)終端用于用戶向Web服務(wù)器提交關(guān)鍵字請(qǐng)求搜索結(jié)果;Web服務(wù)器用于接收移動(dòng)終端提交的關(guān)鍵字搜索結(jié)果請(qǐng)求,并判斷緩存服務(wù)器的緩存列表中是否存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,如果緩存列表中存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,則讀取該搜索結(jié)果緩存并輸出到移動(dòng)終端用戶;如果緩存列表中不存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,則通過(guò)數(shù)據(jù)庫(kù)查詢?cè)撽P(guān)鍵字的搜索結(jié)果,將該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果加入緩存列表中,并輸出到移動(dòng)終端用戶;緩存服務(wù)器中包括緩存列表,該緩存列表用于緩存關(guān)鍵字以及該關(guān)鍵字所對(duì)應(yīng)的搜索結(jié)果;數(shù)據(jù)庫(kù)用于數(shù)據(jù)的存儲(chǔ)和管理;資源管理服務(wù)器用于后臺(tái)編輯人員進(jìn)行資源編輯操作;緩存更新模塊用于在資源記錄有變化(增加、修改和刪除)時(shí),將新的資源記錄加入數(shù)據(jù)庫(kù),并實(shí)時(shí)更新緩存服務(wù)器中緩存列表的緩存數(shù)據(jù);緩存更新模塊具體包括第一判斷單元、資源搜索單元、第二判斷單元、第三判斷單元、第四判斷單元和數(shù)據(jù)更新單元,其中第一判斷單元用于判斷資源記錄是否發(fā)生變化,如果資源記錄發(fā)生變化,通過(guò)數(shù)據(jù)更新單元將新的資源記錄加入到數(shù)據(jù)庫(kù)中;如果資源記錄沒(méi)有發(fā)生變化,結(jié)束本次緩存更新;其中,資源記錄的變化包括增加、修改或/和刪除。資源搜索單元用于通過(guò)搜索條件得出發(fā)生變化的資源記錄對(duì)應(yīng)的搜索關(guān)鍵字,并將該搜索關(guān)鍵字加入資源更新列表中;其中,搜索條件包括資源記錄中的一個(gè)或多個(gè)字段, 如在音樂(lè)搜索中,搜索關(guān)鍵字“周杰倫”,服務(wù)器端會(huì)去匹配歌手名和歌曲名這二個(gè)字段。第二判斷單元用于判斷緩存服務(wù)器中是否存在緩存列表,如果存在緩存列表,通過(guò)第三判斷單元遍歷緩存列表;如果不存在緩存列表,結(jié)束本次緩存更新;第三判斷單元用于遍歷緩存列表,判斷緩存列表中是否有緩存關(guān)鍵字,如果緩存列表中有緩存關(guān)鍵字,通過(guò)第四判斷單元判斷資源更新列表中是否包含該緩存關(guān)鍵字;如果緩存列表中沒(méi)有緩存關(guān)鍵字,結(jié)束本次緩存更新;第四判斷單元用于取出一個(gè)緩存關(guān)鍵字,并判斷資源更新列表中是否包含該緩存關(guān)鍵字,如果資源更新列表中包含該緩存關(guān)鍵字,通過(guò)數(shù)據(jù)更新單元重新搜索數(shù)據(jù)庫(kù);如果關(guān)鍵字更新列表中不包含該緩存關(guān)鍵字,則通過(guò)第三判斷單元重新遍歷緩存列表;其中,程序會(huì)判斷變化的資源記錄是否會(huì)影響到該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果,如果資源更新列表中包含該緩存關(guān)鍵字,說(shuō)明變化的資源記錄會(huì)影響該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果,則資源管理后臺(tái)會(huì)做一個(gè)該關(guān)鍵字搜索請(qǐng)求,重新搜索數(shù)據(jù)表取得最新的搜索結(jié)果,再將該搜索結(jié)果替換原來(lái)緩存列表中的緩存數(shù)據(jù);反之,如果資源更新列表中不包含該緩存關(guān)鍵字,則說(shuō)明變化的資源記錄不會(huì)影響該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果;判斷變化的資源記錄是否會(huì)影響關(guān)鍵字搜索結(jié)果的具體判斷方式為在搜索業(yè)務(wù)中,服務(wù)器端會(huì)根據(jù)搜索關(guān)鍵字去匹配資源記錄中的一個(gè)或多個(gè)字段,如在音樂(lè)搜索中,用戶提交“周杰倫”關(guān)鍵字搜索, 服務(wù)器端會(huì)用“周杰倫”這個(gè)關(guān)鍵字去匹配歌手名和歌曲名這二個(gè)字段,再將能匹配的資源記錄檢索出來(lái)提供給搜索用戶。反過(guò)來(lái),如果在資源管理后臺(tái)中修改(或增加)了一條歌手名為“周杰倫”、歌曲名為“七里香”的資源記錄,可以得知,受影響的關(guān)鍵字搜索結(jié)果至少有“周杰倫”和“七里香”這二個(gè)關(guān)鍵字。數(shù)據(jù)更新單元用于將新的資源記錄加入數(shù)據(jù)庫(kù)中,查詢數(shù)據(jù)庫(kù)重新搜索該緩存關(guān)鍵字對(duì)應(yīng)的新的搜索結(jié)果,并刪除緩存列表中該緩存關(guān)鍵字的緩存數(shù)據(jù),將新的搜索結(jié)果加入到緩存列表中。本發(fā)明實(shí)時(shí)更新緩存的方法和系統(tǒng)通過(guò)在資源管理服務(wù)器中增加更新緩存功能, 當(dāng)資源有變化(增加、修改和刪除)時(shí),程序會(huì)遍歷緩存列表的關(guān)鍵字,判斷變化的資源是否會(huì)影響到該關(guān)鍵字的搜索結(jié)果,如果會(huì)影響,則資源管理后臺(tái)會(huì)重新搜索數(shù)據(jù)表取得最新的搜索結(jié)果,再將這個(gè)搜索結(jié)果替換原來(lái)在緩存列表中的緩存數(shù)據(jù);本發(fā)明既可以保證新增加資源記錄能得到實(shí)時(shí)的更新,又不需要采用一天過(guò)期的機(jī)制,減少了服務(wù)器端每一天都要對(duì)所有關(guān)鍵字重新在數(shù)據(jù)表中搜索花費(fèi)的時(shí)間,提升用戶的使用體驗(yàn)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種實(shí)時(shí)更新緩存的方法,包括步驟a 在資源管理服務(wù)器增加更新緩存功能;步驟b 判斷資源記錄是否發(fā)生變化,如果資源記錄發(fā)生變化,執(zhí)行步驟c ;如果資源記錄沒(méi)有發(fā)生變化,結(jié)束本次緩存更新;步驟c 將新的資源記錄加入數(shù)據(jù)庫(kù)中,并實(shí)時(shí)更新緩存列表中的緩存數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的實(shí)時(shí)更新緩存的方法,其特征在于,所述步驟c具體還包括 獲取發(fā)生變化的資源記錄對(duì)應(yīng)的搜索關(guān)鍵字,并將該搜索關(guān)鍵字加入資源更新列表中。
3.根據(jù)權(quán)利要求2所述的實(shí)時(shí)更新緩存的方法,其特征在于,所述步驟c具體還包括 判斷緩存服務(wù)器中是否存在緩存列表,如果存在緩存列表,則遍歷緩存列表;如果不存在緩存列表,結(jié)束本次緩存更新。
4.根據(jù)權(quán)利要求3所述的實(shí)時(shí)更新緩存的方法,其特征在于,所述步驟c具體還包括 遍歷緩存列表,判斷緩存列表中是否有緩存關(guān)鍵字,如果緩存列表中沒(méi)有緩存關(guān)鍵字,結(jié)束本次緩存更新;如果緩存列表中有緩存關(guān)鍵字,取出一個(gè)緩存關(guān)鍵字,并判斷資源更新列表中是否包含該緩存關(guān)鍵字。
5.根據(jù)權(quán)利要求4所述的實(shí)時(shí)更新緩存的方法,其特征在于,所述步驟c還包括如果資源更新列表中包含該緩存關(guān)鍵字,查詢數(shù)據(jù)庫(kù)重新搜索該緩存關(guān)鍵字對(duì)應(yīng)的新的搜索結(jié)果,刪除緩存列表中該緩存關(guān)鍵字的緩存數(shù)據(jù),將新的搜索結(jié)果加入到緩存列表中;如果關(guān)鍵字更新列表中不包含該緩存關(guān)鍵字,則重新遍歷緩存列表。
6.根據(jù)權(quán)利要求5所述的實(shí)時(shí)更新緩存的方法,其特征在于,在所述步驟c后還包括 接收用戶的關(guān)鍵字搜索請(qǐng)求,判斷緩存服務(wù)器的緩存列表中是否存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,如果緩存列表中存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,從緩存列表中讀取該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果并輸出到移動(dòng)終端用戶;如果緩存列表中不存在該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果緩存,則通過(guò)查詢數(shù)據(jù)庫(kù)得到該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果,并將該關(guān)鍵字以及對(duì)應(yīng)的搜索結(jié)果加入緩存列表中,并輸出到移動(dòng)終端用戶。
7.一種實(shí)時(shí)更新緩存的系統(tǒng),包括緩存服務(wù)器、數(shù)據(jù)庫(kù)和資源管理服務(wù)器,所述緩存服務(wù)器用于緩存關(guān)鍵字以及該關(guān)鍵字所對(duì)應(yīng)的搜索結(jié)果;所述資源管理服務(wù)器用于進(jìn)行資源編輯操作,其特征在于,所述資源管理服務(wù)器還包括緩存更新模塊,所述緩存更新模塊包括第一判斷單元和數(shù)據(jù)更新單元,所述第一判斷單元用于判斷資源記錄是否發(fā)生變化,如果資源記錄發(fā)生變化,通過(guò)數(shù)據(jù)更新單元更新緩存數(shù)據(jù);如果資源記錄沒(méi)有發(fā)生變化,結(jié)束本次緩存更新;所述數(shù)據(jù)更新單元用于將新的資源記錄加入數(shù)據(jù)庫(kù)中,并實(shí)時(shí)更新緩存列表中的緩存數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的實(shí)時(shí)更新緩存的系統(tǒng),其特征在于,所述實(shí)時(shí)更新緩存的系統(tǒng)還包括移動(dòng)終端和web服務(wù)器,所述移動(dòng)終端用于向Web服務(wù)器提交關(guān)鍵字請(qǐng)求搜索結(jié)果;所述Web服務(wù)器用于接收移動(dòng)終端提交的關(guān)鍵字搜索結(jié)果請(qǐng)求,并返回搜索結(jié)果給移動(dòng)終端。
9.根據(jù)權(quán)利要求7或8所述的實(shí)時(shí)更新緩存的系統(tǒng),其特征在于,所述緩存更新模塊還包括資源搜索單元,所述資源搜索單元用于通過(guò)搜索條件得出發(fā)生變化的資源記錄對(duì)應(yīng)的搜索關(guān)鍵字,并將該搜索關(guān)鍵字加入資源更新列表中。
10.根據(jù)權(quán)利要求9所述的實(shí)時(shí)更新緩存的系統(tǒng),其特征在于,所述緩存更新模塊還包括第二判斷單元、第三判斷單元和第四判斷單元,所述第二判斷單元用于判斷緩存服務(wù)器中是否存在緩存列表,如果存在緩存列表,通過(guò)第三判斷單元遍歷緩存列表;如果不存在緩存列表,結(jié)束本次緩存更新;所述第三判斷單元用于遍歷緩存列表,判斷緩存列表中是否有緩存關(guān)鍵字,如果緩存列表中有緩存關(guān)鍵字,通過(guò)第四判斷單元判斷資源更新列表中是否包含該緩存關(guān)鍵字;如果緩存列表中沒(méi)有緩存關(guān)鍵字,結(jié)束本次緩存更新;所述第四判斷單元用于取出一個(gè)緩存關(guān)鍵字,并判斷資源更新列表中是否包含該緩存關(guān)鍵字,如果資源更新列表中包含該緩存關(guān)鍵字,通過(guò)數(shù)據(jù)更新單元重新搜索數(shù)據(jù)庫(kù);如果關(guān)鍵字更新列表中不包含該緩存關(guān)鍵字,則通過(guò)第三判斷單元重新遍歷緩存列表。
全文摘要
本發(fā)明屬于搜索技術(shù)領(lǐng)域,尤其涉及一種實(shí)時(shí)更新緩存的方法和系統(tǒng)。本發(fā)明實(shí)時(shí)更新緩存的方法包括步驟a在資源管理服務(wù)器增加一個(gè)更新緩存功能;步驟b判斷資源記錄是否發(fā)生變化,如果資源記錄發(fā)生變化,執(zhí)行步驟c;如果資源記錄沒(méi)有發(fā)生變化,結(jié)束本次緩存更新;步驟c將新的資源記錄加入數(shù)據(jù)庫(kù)中,并實(shí)時(shí)更新緩存列表中的緩存數(shù)據(jù)。本發(fā)明的技術(shù)方案既可以保證發(fā)生變化的資源記錄能得到實(shí)時(shí)的更新,又不需要采用一天過(guò)期的機(jī)制,減少了服務(wù)器端每一天都要對(duì)所有關(guān)鍵字重新在數(shù)據(jù)庫(kù)中搜索花費(fèi)的時(shí)間,提升用戶的使用體驗(yàn)。
文檔編號(hào)G06F17/30GK102279880SQ20111021388
公開(kāi)日2011年12月14日 申請(qǐng)日期2011年7月28日 優(yōu)先權(quán)日2011年7月28日
發(fā)明者魯林 申請(qǐng)人:深圳市五巨科技有限公司