數(shù)據(jù)查詢方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本公開涉及網(wǎng)絡(luò)數(shù)據(jù)處理領(lǐng)域,特別涉及一種數(shù)據(jù)查詢方法及裝置。
【背景技術(shù)】
[0002]服務(wù)器在接收到一個(gè)服務(wù)請(qǐng)求時(shí),通常需要查詢服務(wù)請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù),并根據(jù)目標(biāo)數(shù)據(jù)對(duì)服務(wù)請(qǐng)求進(jìn)行處理,其中,查詢目標(biāo)數(shù)據(jù)的速度是影響服務(wù)響應(yīng)時(shí)間的重要因素。
[0003]服務(wù)器要查詢的數(shù)據(jù)一般存儲(chǔ)在非易失性的數(shù)據(jù)庫中。由于數(shù)據(jù)庫的讀寫性能有限,為了提高查詢速度,在服務(wù)器中還設(shè)置有一個(gè)讀寫性能較高的緩存器,用來緩存數(shù)據(jù)庫中的數(shù)據(jù),在查詢目標(biāo)數(shù)據(jù)時(shí),服務(wù)器可以直接從緩存器中進(jìn)行查詢。由于數(shù)據(jù)庫中的數(shù)據(jù)在不斷的更新,為了保證服務(wù)的準(zhǔn)確性,緩存器中的數(shù)據(jù)還設(shè)置有效時(shí)限,緩存時(shí)間到達(dá)該有效時(shí)限的數(shù)據(jù)將會(huì)失效,同時(shí),服務(wù)器會(huì)根據(jù)數(shù)據(jù)庫中的最新數(shù)據(jù)對(duì)緩存器中的數(shù)據(jù)進(jìn)行更新,若因?yàn)閿?shù)據(jù)庫或者網(wǎng)絡(luò)故障導(dǎo)致服務(wù)器無法對(duì)緩存器中的數(shù)據(jù)進(jìn)行及時(shí)更新,則當(dāng)緩存器中的數(shù)據(jù)失效后,服務(wù)器只能向用戶返回服務(wù)失敗的響應(yīng),從而影響服務(wù)效果和用戶體驗(yàn)。
【發(fā)明內(nèi)容】
[0004]本公開實(shí)施例提供了一種數(shù)據(jù)查詢方法及裝置,所述技術(shù)方案如下:
[0005]根據(jù)本公開實(shí)施例的第一方面,提供了一種數(shù)據(jù)查詢方法,該方法包括:
[0006]當(dāng)接收到用戶終端發(fā)送的服務(wù)請(qǐng)求,且該主緩存器中不存在該服務(wù)請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)時(shí),向數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù);
[0007]若向該數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù)失敗,則查詢該副緩存器中是否存儲(chǔ)有該目標(biāo)數(shù)據(jù);
[0008]若該副緩存器中存在該目標(biāo)數(shù)據(jù),則根據(jù)該副緩存器存儲(chǔ)的該目標(biāo)數(shù)據(jù)處理該服務(wù)請(qǐng)求;
[0009]其中,該主緩存器中的數(shù)據(jù)在緩存時(shí)間到達(dá)第一有效時(shí)限T1時(shí)失效,且該副緩存器中的數(shù)據(jù)是該主緩存器中的數(shù)據(jù)在發(fā)生新增或者更新時(shí)的備份。
[0010]可選地,該方法還包括:若該副緩存器中存在有該目標(biāo)數(shù)據(jù),則將該副緩存器存儲(chǔ)的該目標(biāo)數(shù)據(jù)復(fù)制到該主緩存器。
[0011]可選地,該方法還包括:將該副緩存器存儲(chǔ)的該目標(biāo)數(shù)據(jù)復(fù)制到該主緩存器之后,重置該副緩存器中的該目標(biāo)數(shù)據(jù)的緩存時(shí)間,該副緩存器中的數(shù)據(jù)在緩存時(shí)間到達(dá)第二有效時(shí)限T2時(shí)失效,0 < ΤΙ < T2。
[0012]可選地,該方法還包括:若向該數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù)成功,則將從該數(shù)據(jù)庫中讀取到的該目標(biāo)數(shù)據(jù)存儲(chǔ)至該主緩存器和該副緩存器;
[0013]根據(jù)從該數(shù)據(jù)庫中讀取到的該目標(biāo)數(shù)據(jù)處理該服務(wù)請(qǐng)求。
[0014]可選地,該方法還包括:當(dāng)該主緩存器中的已有數(shù)據(jù)在緩存時(shí)間到達(dá)更新時(shí)限T3時(shí),向該數(shù)據(jù)庫讀取與該已有數(shù)據(jù)相對(duì)應(yīng)的新數(shù)據(jù),ΤΙ > T3 > 0 ;
[0015]若讀取該新數(shù)據(jù)成功,則將該主緩存器和該副緩存器中各自存儲(chǔ)的該已有數(shù)據(jù)更新為該新數(shù)據(jù)。
[0016]可選地,該方法還包括:若該副緩存器中不存在該目標(biāo)數(shù)據(jù),則向該用戶終端返回服務(wù)失敗響應(yīng)。
[0017]根據(jù)本公開實(shí)施例的第二方面,提供了一種數(shù)據(jù)查詢裝置,該裝置包括:
[0018]第一讀取模塊,被配置為用于當(dāng)接收到用戶終端發(fā)送的服務(wù)請(qǐng)求,且該主緩存器中不存在該服務(wù)請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)時(shí),向數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù);
[0019]查詢模塊,被配置為用于若該第一讀取模塊向該數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù)失敗,則查詢該副緩存器中是否存儲(chǔ)有該目標(biāo)數(shù)據(jù);
[0020]處理模塊,被配置為用于若該副緩存器中存在該目標(biāo)數(shù)據(jù),則根據(jù)該副緩存器存儲(chǔ)的該目標(biāo)數(shù)據(jù)處理該服務(wù)請(qǐng)求;
[0021]其中,該主緩存器中的數(shù)據(jù)在緩存時(shí)間到達(dá)第一有效時(shí)限T1時(shí)失效,且該副緩存器中的數(shù)據(jù)是該主緩存器中的數(shù)據(jù)在發(fā)生新增或者更新時(shí)的備份。
[0022]可選地,該裝置還包括:復(fù)制模塊,被配置為于若該副緩存器中存在有該目標(biāo)數(shù)據(jù),則將該副緩存器存儲(chǔ)的該目標(biāo)數(shù)據(jù)復(fù)制到該主緩存器。
[0023]可選地,該裝置還包括:重置模塊,被配置為用于在該復(fù)制模塊將該副緩存器存儲(chǔ)的該目標(biāo)數(shù)據(jù)復(fù)制到該主緩存器之后,重置該副緩存器中的該目標(biāo)數(shù)據(jù)的緩存時(shí)間,該副緩存器中的數(shù)據(jù)在緩存時(shí)間到達(dá)第二有效時(shí)限T2時(shí)失效,0 < ΤΙ < T2。
[0024]可選地,該裝置還包括:存儲(chǔ)模塊,被配置為用于若該第一讀取模塊向該數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù)成功,則將從該數(shù)據(jù)庫中讀取到的該目標(biāo)數(shù)據(jù)存儲(chǔ)至該主緩存器和該副緩存器;
[0025]該處理模塊,被配置為用于根據(jù)該讀取模塊從該數(shù)據(jù)庫中讀取到的該目標(biāo)數(shù)據(jù)處理該服務(wù)請(qǐng)求。
[0026]可選地,該裝置還包括:第二讀取模塊,還被配置為用于當(dāng)該主緩存器中的已有數(shù)據(jù)在緩存時(shí)間到達(dá)更新時(shí)限T3時(shí),向該數(shù)據(jù)庫讀取與該已有數(shù)據(jù)相對(duì)應(yīng)的新數(shù)據(jù),ΤΙ > T3> 0 ;
[0027]更新模塊,被配置為用于若該第二讀取模塊讀取該新數(shù)據(jù)成功,則將該主緩存器和該副緩存器中各自存儲(chǔ)的該已有數(shù)據(jù)更新為該新數(shù)據(jù)。
[0028]可選地,該裝置還包括:響應(yīng)模塊,被配置為用于若該副緩存器中不存在該目標(biāo)數(shù)據(jù),則向該用戶終端返回服務(wù)失敗響應(yīng)。
[0029]根據(jù)本公開實(shí)施例的第三方面,提供了一種數(shù)據(jù)查詢裝置,該裝置用于包含主緩存器和副緩存器的服務(wù)器中,該裝置包括:
[0030]處理器;
[0031]用于存儲(chǔ)該處理器的可執(zhí)行指令的存儲(chǔ)器;
[0032]其中,該處理器被配置為:
[0033]當(dāng)接收到用戶終端發(fā)送的服務(wù)請(qǐng)求,且該主緩存器中不存在該服務(wù)請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)時(shí),向數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù);
[0034]若向該數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù)失敗,則查詢該副緩存器中是否存儲(chǔ)有該目標(biāo)數(shù)據(jù);
[0035]若該副緩存器中存在該目標(biāo)數(shù)據(jù),則根據(jù)該副緩存器存儲(chǔ)的該目標(biāo)數(shù)據(jù)處理該服務(wù)請(qǐng)求;
[0036]其中,該主緩存器中的數(shù)據(jù)在緩存時(shí)間到達(dá)第一有效時(shí)限T1時(shí)失效,且該副緩存器中的數(shù)據(jù)是該主緩存器中的數(shù)據(jù)在發(fā)生新增或者更新時(shí)的備份。
[0037]本公開實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0038]通過當(dāng)接收到用戶終端發(fā)送的服務(wù)請(qǐng)求,且該主緩存器中不存在該服務(wù)請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)時(shí),向數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù);若向該數(shù)據(jù)庫讀取該目標(biāo)數(shù)據(jù)失敗,則查詢該副緩存器中是否存儲(chǔ)有該目標(biāo)數(shù)據(jù);若該副緩存器中存在該目標(biāo)數(shù)據(jù),則根據(jù)該副緩存器存儲(chǔ)的該目標(biāo)數(shù)據(jù)處理該服務(wù)請(qǐng)求;其中,該主緩存器中的數(shù)據(jù)在緩存時(shí)間到達(dá)第一有效時(shí)限T1時(shí)失效,且該副緩存器中的數(shù)據(jù)是該主緩存器中的數(shù)據(jù)在發(fā)生新增或者更新時(shí)的備份,解決了相關(guān)技術(shù)中,當(dāng)數(shù)據(jù)庫或者網(wǎng)絡(luò)故障導(dǎo)致服務(wù)器無法對(duì)緩存器中的數(shù)據(jù)進(jìn)行及時(shí)更新而導(dǎo)致存器中的數(shù)據(jù)失效時(shí),服務(wù)器只能向用戶返回服務(wù)失敗的響應(yīng),從而影響服務(wù)效果和用戶體驗(yàn)的問題,實(shí)現(xiàn)了延長數(shù)據(jù)的有效時(shí)長,充分提高了服務(wù)器的可用性的效果Ο
[0039]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
【附圖說明】
[0040]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實(shí)施例,并與說明書一起用于解釋本公開的原理。
[0041]圖1是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)查詢方法所涉及的實(shí)施環(huán)境的示意圖;
[0042]圖2是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)查詢方法的流程圖;
[0043]圖3是根據(jù)另一示例性實(shí)施例示出的一種數(shù)據(jù)查詢方法的流程圖;
[0044]圖4是根據(jù)再一示例性實(shí)施例示出的一種數(shù)據(jù)查詢方法的流程圖;
[0045]圖5是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)查詢裝置的框圖;
[0046]圖6是根據(jù)另一示例性實(shí)施例示出的一種數(shù)據(jù)查詢裝置的框圖;
[0047]圖7是根據(jù)一示例性實(shí)施例示出的一種裝置的框圖。
【具體實(shí)施方式】
[0048]這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本公開相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
[0049]圖1是根據(jù)本公開所示出的數(shù)據(jù)查詢方法所涉及的實(shí)施環(huán)境的示意圖。該實(shí)施環(huán)境可以包括:服務(wù)器101、終端設(shè)備102以及數(shù)據(jù)庫103。
[0050]服務(wù)器101包含主緩存器(主Cache)和副緩存(副Cache)器,可以通過有線或者無線網(wǎng)絡(luò)與終端設(shè)備102和數(shù)據(jù)庫103相連。
[0051]用戶終端102可以是諸如手機(jī)、個(gè)人電腦、