一種查詢的緩存方法及裝置制造方法
【專利摘要】本發(fā)明實(shí)施例公開了一種查詢的緩存方法及裝置,所述方法包括:接收任一查詢條件組,所述查詢條件組包括N項(xiàng)查詢條件,所述N為自然數(shù);以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件;當(dāng)所述查詢條件組或者所述相關(guān)查詢條件組對(duì)應(yīng)的查詢結(jié)果不存在于緩存時(shí),判斷所述緩存是否存在剩余空間,如果是,則從數(shù)據(jù)庫中獲取所述查詢結(jié)果,并將所述查詢結(jié)果存入所述緩存。本發(fā)明將相關(guān)查詢條件對(duì)應(yīng)的查詢結(jié)果預(yù)先存入緩存中,以便后續(xù)用戶第一次輸入相關(guān)查詢條件時(shí)能夠直接從緩存中讀取查詢結(jié)果,從而減少用戶等待時(shí)間,提高查詢效率。
【專利說明】一種查詢的緩存方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體涉及一種查詢的緩存方法及裝置。
【背景技術(shù)】
[0002]隨著信息系統(tǒng)的發(fā)展,業(yè)務(wù)數(shù)據(jù)迅速增長。在海量數(shù)據(jù)條件下,迅速查詢出有價(jià)值的信息,為用戶提供查詢結(jié)果,是各種查詢類信息系統(tǒng)的重要功能。
[0003]緩存在計(jì)算機(jī)世界中有很廣泛的應(yīng)用,為了提高系統(tǒng)響應(yīng)速度,減少用戶等待時(shí)間,提高用戶使用體驗(yàn),一個(gè)高效、完善的服務(wù)器必須具有緩存數(shù)據(jù)的能力。在查詢類信息系統(tǒng)中,緩存的工作原理是當(dāng)用戶輸入一個(gè)查詢條件對(duì)應(yīng)時(shí),首先從緩存中查找查詢結(jié)果,如果找到就立即將該查詢結(jié)果讀取并返回至用戶;如果沒有找到,則可以用相對(duì)慢的速度從數(shù)據(jù)庫中讀取并返回至用戶,同時(shí)把該查詢結(jié)果存入緩存中,這樣使得以后對(duì)該查詢條件的查詢都可以直接從緩存中進(jìn)行,不必再讀取數(shù)據(jù)庫,從而節(jié)省查詢的時(shí)間,提高查詢的效率。
[0004]但是,上述緩存是由用戶的查詢條件觸發(fā)的,只能緩存已經(jīng)查詢過的查詢結(jié)果,當(dāng)用戶發(fā)起新的相關(guān)查詢時(shí),依然需要通過復(fù)雜的查詢過程來生成查詢結(jié)果,所以該緩存方法具有一定的局限性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種查詢的緩存方法及裝置,能夠?qū)τ脩魶]有訪問過但存在較大概率將要訪問的相關(guān)查詢結(jié)果進(jìn)行緩存。
[0006]本發(fā)明提供了一種查詢的緩存方法,所述方法包括:
[0007]接收任一查詢條件組,所述查詢條件組包括N項(xiàng)查詢條件,所述N為自然數(shù);
[0008]以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件;
[0009]當(dāng)所述查詢條件組或者所述相關(guān)查詢條件組對(duì)應(yīng)的查詢結(jié)果不存在于緩存時(shí),判斷所述緩存是否存在剩余空間,如果是,則從數(shù)據(jù)庫中獲取所述查詢結(jié)果,并將所述查詢結(jié)果存入所述緩存。
[0010]優(yōu)選地,所述以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件,包括:
[0011]所述查詢條件組中的查詢條件均完成執(zhí)行預(yù)測流程,所述預(yù)測流程包括:獲取所述查詢條件組中的任一查詢條件;以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件生成相關(guān)查詢條件,所述生成策略為所述查詢條件與所述相關(guān)查詢條件屬于相同條件類型;
[0012]將所述相關(guān)查詢條件組成相關(guān)查詢條件組。
[0013]優(yōu)選地,所述方法還包括:
[0014]當(dāng)所述緩存不存在剩余空間時(shí),清理所述緩存。
[0015]優(yōu)選地,所述清理所述緩存,包括:[0016]判斷所述緩存中的任一查詢結(jié)果是否滿足預(yù)設(shè)的刪除條件,如果是,則將所述查詢結(jié)果刪除。
[0017]優(yōu)選地,所述刪除條件包括:
[0018]被訪問次數(shù)小于預(yù)設(shè)次數(shù),和\或,存在時(shí)間大于預(yù)設(shè)時(shí)間閾值,和\或,被訪問頻
率小于預(yù)設(shè)頻率。
[0019]本發(fā)明還提供了一種查詢的緩存裝置,所述裝置包括:
[0020]接收模塊,用于接收任一查詢條件組,所述查詢條件組包括N項(xiàng)查詢條件,所述N為自然數(shù);
[0021]生成模塊,用于以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件;
[0022]判斷模塊,用于當(dāng)所述查詢條件組或者所述相關(guān)查詢條件組對(duì)應(yīng)的查詢結(jié)果不存在于緩存時(shí),判斷所述緩存是否存在剩余空間;
[0023]存儲(chǔ)模塊,用于在所述判斷模塊的結(jié)果為是時(shí),從數(shù)據(jù)庫中獲取所述查詢結(jié)果,并將所述查詢結(jié)果存入所述緩存。
[0024]優(yōu)選地,所述生成模塊,包括:
[0025]獲取子模塊,用于獲取所述查詢條件組中的任一查詢條件;
[0026]生成子模塊,用于以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述獲取子模塊獲取的查詢條件生成相關(guān)查詢條件,所述生成策略為所述查詢條件與所述相關(guān)查詢條件屬于相同條件類型;
[0027]觸發(fā)子模塊,用于所述查詢條件組中的查詢條件均完成觸發(fā)所述獲取子模塊。
[0028]組成子模塊,用于將所述相關(guān)查詢條件組成相關(guān)查詢條件組。
[0029]優(yōu)選地,所述裝置還包括:
[0030]清理模塊,用于當(dāng)所述緩存不存在剩余空間時(shí),清理所述緩存。
[0031]優(yōu)選地,所述清理模塊,包括:
[0032]判斷子模塊,用于判斷所述緩存中的任一查詢結(jié)果是否滿足預(yù)設(shè)的刪除條件;
[0033]刪除子模塊,用于在所述判斷子模塊的結(jié)果為是時(shí),將所述查詢結(jié)果刪除。
[0034]本發(fā)明提供一種查詢的緩存方法預(yù)先設(shè)置生成策略,在接收查詢條件組之后,根據(jù)生成策略通過查詢條件組生成相關(guān)查詢條件。當(dāng)緩存處于可以存入數(shù)據(jù)的狀態(tài)時(shí),將相關(guān)查詢條件對(duì)應(yīng)的查詢結(jié)果預(yù)先存入緩存中,以便后續(xù)用戶第一次輸入相關(guān)查詢條件時(shí)能夠直接從緩存中讀取查詢結(jié)果,從而減少用戶等待時(shí)間,提高查詢效率。
【專利附圖】
【附圖說明】
[0035]為了更清楚地說明本申請實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0036]圖1為本發(fā)明實(shí)施例一提供的查詢的緩存方法流程圖;
[0037]圖2為本發(fā)明實(shí)施例二提供的查詢的緩存裝置結(jié)構(gòu)圖;
[0038]圖3為本發(fā)明實(shí)施例二提供的所述生成模塊202的結(jié)構(gòu)圖;[0039]圖4為本發(fā)明實(shí)施例二提供的查詢的緩存裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0040]下面將結(jié)合本申請實(shí)施例中的附圖,對(duì)本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
[0041]實(shí)施例一
[0042]參考圖1,圖1為本實(shí)施例提供的查詢的緩存方法流程圖,該方法具體可以包括:
[0043]步驟101:接收任一查詢條件組,所述查詢條件組包括N項(xiàng)查詢條件,所述N為自然數(shù)。
[0044]本實(shí)施例中,首先接收任意一個(gè)查詢條件組,其中,查詢條件組中包括至少一項(xiàng)查詢條件。例如,查詢條件組可以為(日期:20130531,機(jī)構(gòu):北京分行,業(yè)務(wù)類型:貸款),其中,該查詢條件組包括三項(xiàng)查詢條件,“日期:20130531”、“機(jī)構(gòu):北京分行”和“業(yè)務(wù)類型:貸款”均為該查詢條件組中的查詢條件。
[0045]實(shí)際操作中,查詢條件組的來源較多,可以為用戶提供的查詢條件組,也可以為預(yù)先設(shè)置后直接從系統(tǒng)中讀取的查詢條件組,具體的查詢條件組的提供方式本實(shí)施例不做限制。
[0046]步驟102:以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件。
[0047]本實(shí)施例中,預(yù)先設(shè)置生成策略,該生成策略用于生成相關(guān)查詢條件組。具體的,可以以該生成策略為依據(jù),根據(jù)接收的查詢條件組生成相關(guān)查詢條件組。其中,根據(jù)一個(gè)查詢條件組可以生成一個(gè)相關(guān)查詢條件組,也可以生成多個(gè)相關(guān)查詢條件組。
[0048]具體操作中,接收的查詢條件組中的所有查詢條件均需要完成執(zhí)行預(yù)測流程,該預(yù)測流程可以包括:首先獲取該查詢條件組中的任意一個(gè)查詢條件;其次,以預(yù)設(shè)的生成策略為依據(jù),根據(jù)該查詢條件生成相關(guān)查詢條件,所述生成策略為所述查詢條件與所述相關(guān)查詢條件屬于相同條件類型。當(dāng)查詢條件組中的所有查詢條件均完成預(yù)測流程后,將生成的所有相關(guān)查詢條件組成相關(guān)查詢條件組。例如,可以根據(jù)查詢條件“機(jī)構(gòu):天津分行”生成相關(guān)查詢條件“機(jī)構(gòu):北京分行”,則“機(jī)構(gòu):天津分行”和“機(jī)構(gòu):北京分行”即屬于相同條件類型。
[0049]實(shí)際操作中,生成策略可以為內(nèi)容相關(guān)性的策略,也就是說,以該生成策略為依據(jù),可以生成與查詢條件組存在相似或者相關(guān)的內(nèi)容的相關(guān)查詢條件組。例如,查詢條件組為(日期:20130531,機(jī)構(gòu):北京分行,業(yè)務(wù)類型:貸款)時(shí),可以根據(jù)該查詢條件生成(日期:20130430,機(jī)構(gòu):天津分行,業(yè)務(wù)類型:存款)的相關(guān)查詢條件組,“日期:20130430”、“機(jī)構(gòu):天津分行”和“業(yè)務(wù)類型:存款”為該相關(guān)查詢條件組中的相關(guān)查詢條件。其中,20130430和20130531同屬于同年月末的日期,貸款和存款同屬于銀行業(yè)務(wù)類型,用戶在查詢貸款數(shù)據(jù)的時(shí)候,有很大可能也會(huì)查詢存款數(shù)據(jù),所以其存在相似或者相關(guān)的內(nèi)容。
[0050]根據(jù)查詢條件組(日期:20130531,機(jī)構(gòu):北京分行,業(yè)務(wù)類型:貸款)也可以生成相關(guān)查詢條件組(日期:20130531,機(jī)構(gòu):北京分行,業(yè)務(wù)類型:存款),所以,根據(jù)一個(gè)查詢條件組也可以生成多個(gè)相關(guān)查詢條件組。
[0051]另外,本實(shí)施例可以根據(jù)歷史查詢信息、數(shù)據(jù)對(duì)比信息及其他提前制定的規(guī)則制定生成策略,具體的預(yù)先設(shè)置生成策略的方法不受限制。同時(shí),也可以通過對(duì)利用本實(shí)施例實(shí)現(xiàn)緩存的查詢結(jié)果的命中概率進(jìn)行統(tǒng)計(jì),動(dòng)態(tài)調(diào)整生成策略,使得設(shè)置的生成策略適用每個(gè)用戶查詢習(xí)慣。
[0052]并且,由于本實(shí)施例利用了多線程技術(shù),所以在生成相關(guān)查詢條件組的同時(shí)不影響用戶當(dāng)前輸入的查詢條件組的查詢效率。
[0053]步驟103:當(dāng)所述查詢條件組或者所述相關(guān)查詢條件組對(duì)應(yīng)的查詢結(jié)果不存在于緩存時(shí),判斷所述緩存是否存在剩余空間,如果是,則進(jìn)入步驟104。
[0054]本實(shí)施例中,在生成相關(guān)查詢條件組之后,判斷相關(guān)查詢條件組或者查詢條件組對(duì)應(yīng)的查詢結(jié)果是否存在于緩存中,當(dāng)緩存中不存在該查詢結(jié)果時(shí),繼續(xù)判斷此時(shí)的緩存是否有剩余空間用于存儲(chǔ)該查詢結(jié)果,在確定存在剩余空間的情況下,進(jìn)入步驟104。
[0055]當(dāng)相關(guān)查詢條件組或者查詢條件組對(duì)應(yīng)的查詢結(jié)果已經(jīng)存在于緩存時(shí),可以直接從緩存中獲取該查詢結(jié)果,并返回給用戶。值得注意的是,相比在數(shù)據(jù)庫中查找查詢結(jié)果,本實(shí)施例能夠從緩存直接查找查詢結(jié)果,一定程度上減少了用戶的等待查詢時(shí)間,提高了查詢效率。
[0056]實(shí)際操作中,當(dāng)緩存不存在剩余空間,同時(shí)要查找的查詢結(jié)構(gòu)不在緩存中時(shí),可以清理該緩存。具體的,首先以該緩存中的任意一個(gè)查詢結(jié)果為對(duì)象,判斷該查詢結(jié)果是否滿足預(yù)設(shè)的刪除條件,如果是,則將該查詢結(jié)果刪除。其中,刪除條件可以根據(jù)用戶需求而設(shè)置的,具體的刪除條件的內(nèi)容不受限制。
[0057]具體的,預(yù)先設(shè)置的刪除條件可以包括被訪問次數(shù)小于預(yù)設(shè)次數(shù),和\或,存在時(shí)間大于預(yù)設(shè)時(shí)間閾值,和\或,被訪問頻率小于預(yù)設(shè)頻率。也就是說,可以判斷查詢結(jié)果的被訪問次數(shù)是否小于預(yù)設(shè)次數(shù),例如,當(dāng)預(yù)設(shè)次數(shù)為10次時(shí),如果查詢結(jié)果的被訪問次數(shù)小于10,則需要?jiǎng)h除該查詢結(jié)果。同樣的,可以判斷查詢結(jié)果的存在時(shí)間是否大于預(yù)設(shè)時(shí)間閾值,以及可以判斷查詢結(jié)果的被訪問頻率是否小于預(yù)設(shè)頻率。值得注意的是,以上三個(gè)刪除條件可以任意組合作為新的刪除條件,具體的,刪除條件的內(nèi)容不做嚴(yán)格限制。
[0058]步驟104:從數(shù)據(jù)庫中獲取所述查詢結(jié)果,并將所述查詢結(jié)果存入所述緩存。
[0059]本實(shí)施例中,當(dāng)緩存中存在剩余空間,但不存在該查詢結(jié)果時(shí),可以從數(shù)據(jù)庫查找該查詢結(jié)果,具體的,從數(shù)據(jù)庫查找查詢結(jié)果的方法不受限制。當(dāng)在數(shù)據(jù)庫中找到查詢結(jié)果后,將該查詢結(jié)果存入緩存中,以便實(shí)現(xiàn)用戶在第一次查詢該查詢結(jié)果時(shí)即可從緩存中加載數(shù)據(jù),減少用戶等待時(shí)間,增強(qiáng)用戶體驗(yàn)。
[0060]本實(shí)施例提供一種查詢的緩存方法,預(yù)先設(shè)置生成策略,在接收查詢條件組之后,根據(jù)生成策略通過查詢條件組生成相關(guān)查詢條件。當(dāng)緩存處于可以存入數(shù)據(jù)的狀態(tài)時(shí),將相關(guān)查詢條件對(duì)應(yīng)的查詢結(jié)果預(yù)先存入緩存中,以便后續(xù)用戶第一次輸入相關(guān)查詢條件時(shí)能夠直接從緩存中讀取查詢結(jié)果,從而減少用戶等待時(shí)間,提高查詢效率。
[0061]實(shí)施例二
[0062]參考圖2,圖2為本實(shí)施例提供的查詢的緩存裝置結(jié)構(gòu)圖,所述裝置可以包括:
[0063]接收模塊201,用于接收任一查詢條件組,所述查詢條件組包括N項(xiàng)查詢條件,所述N為自然數(shù);[0064]生成模塊202,用于以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件;
[0065]其中,參考圖3,圖3為所述生成模塊202的結(jié)構(gòu)圖,所述生成模塊202可以包括:
[0066]獲取子模塊301,用于獲取所述查詢條件組中的任一查詢條件;
[0067]生成子模塊302,用于以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述獲取子模塊獲取的查詢條件生成相關(guān)查詢條件,所述生成策略為所述查詢條件與所述相關(guān)查詢條件屬于相同條件類型;
[0068]觸發(fā)子模塊303,用于所述查詢條件組中的查詢條件均完成觸發(fā)所述獲取子模塊。
[0069]組成子模塊304,用于將所述相關(guān)查詢條件組成相關(guān)查詢條件組。
[0070]判斷模塊203,用于當(dāng)所述查詢條件組或者所述相關(guān)查詢條件組對(duì)應(yīng)的查詢結(jié)果不存在于緩存時(shí),判斷所述緩存是否存在剩余空間;
[0071]存儲(chǔ)模塊204,用于在所述判斷模塊的結(jié)果為是時(shí),從數(shù)據(jù)庫中獲取所述查詢結(jié)果,并將所述查詢結(jié)果存入所述緩存。
[0072]參考圖4,圖4為本實(shí)施例提供的查詢的緩存裝置結(jié)構(gòu)圖,所述裝置不僅包括上述模塊,還可以包括:
[0073]清理模塊401,用于當(dāng)所述緩存不存在剩余空間時(shí),清理所述緩存。
[0074]其中,所述清理模塊401以包括:
[0075]判斷子模塊4011,用于判斷所述緩存中的任一查詢結(jié)果是否滿足預(yù)設(shè)的刪除條件;
[0076]刪除子模塊4012,用于在所述判斷子模塊的結(jié)果為是時(shí),將所述查詢結(jié)果刪除。
[0077]實(shí)際工作中,本實(shí)施例提供的查詢的緩存裝置的工作原理為:
[0078]接收任一查詢條件組,所述查詢條件組包括N項(xiàng)查詢條件,所述N為自然數(shù);
[0079]以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件;
[0080]當(dāng)所述查詢條件組或者所述相關(guān)查詢條件組對(duì)應(yīng)的查詢結(jié)果不存在于緩存時(shí),判斷所述緩存是否存在剩余空間,如果是,則從數(shù)據(jù)庫中獲取所述查詢結(jié)果,并將所述查詢結(jié)果存入所述緩存。
[0081]優(yōu)選地,所述以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件,包括:
[0082]所述查詢條件組中的查詢條件均完成執(zhí)行預(yù)測流程,所述預(yù)測流程包括:獲取所述查詢條件組中的任一查詢條件;以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件生成相關(guān)查詢條件,所述生成策略為所述查詢條件與所述相關(guān)查詢條件屬于相同條件類型;
[0083]將所述相關(guān)查詢條件組成相關(guān)查詢條件組。
[0084]優(yōu)選地,所述方法還包括:
[0085]當(dāng)所述緩存不存在剩余空間時(shí),清理所述緩存。
[0086]優(yōu)選地,所述清理所述緩存,包括:
[0087]判斷所述緩存中的任一查詢結(jié)果是否滿足預(yù)設(shè)的刪除條件,如果是,則將所述查詢結(jié)果刪除。
[0088]優(yōu)選地,所述刪除條件包括:[0089]被訪問次數(shù)小于預(yù)設(shè)次數(shù),和\或,存在時(shí)間大于預(yù)設(shè)時(shí)間閾值,和\或,被訪問頻率小于預(yù)設(shè)頻率。
[0090]本實(shí)施例提供一種查詢的緩存裝置,預(yù)先設(shè)置生成策略,在接收查詢條件組之后,根據(jù)生成策略通過查詢條件組生成相關(guān)查詢條件。當(dāng)緩存處于可以存入數(shù)據(jù)的狀態(tài)時(shí),將相關(guān)查詢條件對(duì)應(yīng)的查詢結(jié)果預(yù)先存入緩存中,以便后續(xù)用戶第一次輸入相關(guān)查詢條件時(shí)能夠直接從緩存中讀取查詢結(jié)果,從而減少用戶等待時(shí)間,提高查詢效率。
[0091]對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0092]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0093]以上對(duì)本發(fā)明實(shí)施例所提供的查詢的緩存方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種查詢的緩存方法,其特征在于,所述方法包括: 接收任一查詢條件組,所述查詢條件組包括N項(xiàng)查詢條件,所述N為自然數(shù); 以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件; 當(dāng)所述查詢條件組或者所述相關(guān)查詢條件組對(duì)應(yīng)的查詢結(jié)果不存在于緩存時(shí),判斷所述緩存是否存在剩余空間,如果是,則從數(shù)據(jù)庫中獲取所述查詢結(jié)果,并將所述查詢結(jié)果存入所述緩存。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件,包括: 所述查詢條件組中的查詢條件均完成執(zhí)行預(yù)測流程,所述預(yù)測流程包括:獲取所述查詢條件組中的任一查詢條件;以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件生成相關(guān)查詢條件,所述生成策略為所述查詢條件與所述相關(guān)查詢條件屬于相同條件類型; 將所述相關(guān)查詢條件組成相關(guān)查詢條件組。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)所述緩存不存在剩余空間時(shí),清理所述緩存。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述清理所述緩存,包括: 判斷所述緩存中的任一查詢結(jié)果是否 滿足預(yù)設(shè)的刪除條件,如果是,則將所述查詢結(jié)果刪除。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述刪除條件包括: 被訪問次數(shù)小于預(yù)設(shè)次數(shù),和\或,存在時(shí)間大于預(yù)設(shè)時(shí)間閾值,和\或,被訪問頻率小于預(yù)設(shè)頻率。
6.一種查詢的緩存裝置,其特征在于,所述裝置包括: 接收模塊,用于接收任一查詢條件組,所述查詢條件組包括N項(xiàng)查詢條件,所述N為自然數(shù); 生成模塊,用于以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述查詢條件組生成至少一個(gè)相關(guān)查詢條件組,所述相關(guān)查詢條件組包括N項(xiàng)相關(guān)查詢條件; 判斷模塊,用于當(dāng)所述查詢條件組或者所述相關(guān)查詢條件組對(duì)應(yīng)的查詢結(jié)果不存在于緩存時(shí),判斷所述緩存是否存在剩余空間; 存儲(chǔ)模塊,用于在所述判斷模塊的結(jié)果為是時(shí),從數(shù)據(jù)庫中獲取所述查詢結(jié)果,并將所述查詢結(jié)果存入所述緩存。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述生成模塊,包括: 獲取子模塊,用于獲取所述查詢條件組中的任一查詢條件; 生成子模塊,用于以預(yù)設(shè)的生成策略為依據(jù),根據(jù)所述獲取子模塊獲取的查詢條件生成相關(guān)查詢條件,所述生成策略為所述查詢條件與所述相關(guān)查詢條件屬于相同條件類型;觸發(fā)子模塊,用于所述查詢條件組中的查詢條件均完成觸發(fā)所述獲取子模塊。 組成子模塊,用于將所述相關(guān)查詢條件組成相關(guān)查詢條件組。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 清理模塊,用于當(dāng)所述緩存不存在剩余空間時(shí),清理所述緩存。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述清理模塊,包括:判斷子模塊,用于判斷所述緩存中的任一查詢結(jié)果是否滿足預(yù)設(shè)的刪除條件;刪除子模塊,用于在所述 判斷子模塊的結(jié)果為是時(shí),將所述查詢結(jié)果刪除。
【文檔編號(hào)】G06F17/30GK103559307SQ201310579133
【公開日】2014年2月5日 申請日期:2013年11月18日 優(yōu)先權(quán)日:2013年11月18日
【發(fā)明者】張淵, 何海清, 吳軍, 李輝, 何啟翱, 李斌, 李 赫 申請人:中國農(nóng)業(yè)銀行股份有限公司