數(shù)據(jù)查詢方法和裝置的制造方法
【專利摘要】本公開揭示了一種數(shù)據(jù)查詢方法和裝置,屬于數(shù)據(jù)處理及通信技術領域。所述數(shù)據(jù)查詢方法包括:接收查詢請求,所述查詢請求攜帶待查找的第一數(shù)據(jù)標識;根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,所述第一緩存空間包括數(shù)據(jù)庫中各數(shù)據(jù)的數(shù)據(jù)標識;在所述第一緩存空間中查詢到所述第一數(shù)據(jù)標識時,根據(jù)所述第一數(shù)據(jù)標識查詢第二緩存空間;在所述第二緩存空間中沒有查詢到所述第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)所述第一數(shù)據(jù)標識查詢所述數(shù)據(jù)庫。解決了惡意分子通過故意大量查詢數(shù)據(jù)庫中沒有存儲的數(shù)據(jù),而增加數(shù)據(jù)庫的訪問量,增大數(shù)據(jù)庫壓力,進而導致系統(tǒng)崩潰,正常服務不能繼續(xù)的問題;達到了減小數(shù)據(jù)庫壓力,提高數(shù)據(jù)庫安全性的效果。
【專利說明】
數(shù)據(jù)查詢方法和裝置
技術領域
[0001]本公開涉及數(shù)據(jù)處理及通信技術領域,特別涉及一種數(shù)據(jù)查詢方法和裝置。
【背景技術】
[0002]信息時代數(shù)據(jù)大量涌現(xiàn),將數(shù)據(jù)分類存儲在不同的數(shù)據(jù)庫中,以方便人們在使用時查詢數(shù)據(jù)。比如,從學校的教學信息管理系統(tǒng)中查詢某個學生的成績;從公司員工信息管理系統(tǒng)中查詢某個員工的信息等。
[0003]目前,有如下查詢數(shù)據(jù)的方法,包括:將距當前最近預設時間內(nèi)查詢的數(shù)據(jù)緩存在內(nèi)存中,在接收到查詢請求時,首先查詢內(nèi)存,如果從內(nèi)存中查詢到所要查詢的數(shù)據(jù)時,則返回查詢到的數(shù)據(jù);如果從內(nèi)存中沒有查詢到所要查詢的數(shù)據(jù)時,則查詢數(shù)據(jù)庫,如果在數(shù)據(jù)庫內(nèi)查詢到所要查詢的數(shù)據(jù),則返回查詢到的數(shù)據(jù),如果在數(shù)據(jù)庫內(nèi)沒有查詢到所要查詢的數(shù)據(jù),則返回查詢失敗。
[0004]由于所要查詢的數(shù)據(jù)沒有存儲在數(shù)據(jù)庫中就會查詢數(shù)據(jù)庫,這樣惡意分子就會利用該缺陷發(fā)送大量查詢請求,且每個查詢請求都是用于查詢數(shù)據(jù)庫中不存在的數(shù)據(jù),增加數(shù)據(jù)庫的訪問量,導致系統(tǒng)崩潰,正常的服務不能繼續(xù)。
【發(fā)明內(nèi)容】
[0005]為了解決相關技術中存在的問題,本公開提供一種數(shù)據(jù)查詢方法和裝置。所述技術方案如下:
[0006]根據(jù)本公開實施例的第一方面,提供一種數(shù)據(jù)查詢方法,該方法包括:
[0007]接收查詢請求,所述查詢請求攜帶待查找的第一數(shù)據(jù)標識;
[0008]根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,所述第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識;
[0009]在所述第一緩存空間中查詢到所述第一數(shù)據(jù)標識時,根據(jù)所述第一數(shù)據(jù)標識查詢第二緩存空間,所述第二緩存空間包括所述數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與所述部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識;
[0010]在所述第二緩存空間中沒有查詢到所述第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)所述第一數(shù)據(jù)標識查詢所述數(shù)據(jù)庫。
[0011 ]可選的,在所述根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間之前,所述方法還包括:
[0012]將所述數(shù)據(jù)庫中存儲的每個數(shù)據(jù)的數(shù)據(jù)標識緩存在所述第一緩存空間中。
[0013]可選的,在所述根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間之前,所述方法還包括:
[0014]在所述數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,根據(jù)所述發(fā)生變化的數(shù)據(jù),更新所述第一緩存空間。
[0015]可選的,所述在所述數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,根據(jù)所述發(fā)生變化的數(shù)據(jù),更新所述第一緩存空間,包括:
[0016]在向所述數(shù)據(jù)庫中存儲數(shù)據(jù)時,將所述存儲的數(shù)據(jù)的數(shù)據(jù)標識緩存到所述第一緩存空間中;
[0017]在從所述數(shù)據(jù)庫中刪除數(shù)據(jù)時,將所述刪除的數(shù)據(jù)的數(shù)據(jù)標識從所述第一緩存空間中刪除。
[0018]可選的,所述第一緩存空間包括多個緩存節(jié)點,所述多個緩存節(jié)點中的每個緩存節(jié)點用于緩存不同的數(shù)據(jù)標識;
[0019]可選的,所述根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,包括:
[0020]根據(jù)所述第一數(shù)據(jù)標識,確定待查詢的緩存節(jié)點;
[0021 ]根據(jù)所述第一數(shù)據(jù)標識,查詢所述待查詢的緩存節(jié)點。
[0022]根據(jù)本公開實施例的第二方面,提供一種數(shù)據(jù)查詢的裝置,該裝置包括:
[0023]接收模塊,被配置為接收查詢請求,所述查詢請求攜帶待查找的第一數(shù)據(jù)標識;
[0024]第一查詢模塊,被配置為根據(jù)所述接收模塊接收到的所述第一數(shù)據(jù)標識查詢第一緩存空間,所述第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識;
[0025]第二查詢模塊,被配置為所述第一查詢模塊在所述第一緩存空間中查詢到所述第一數(shù)據(jù)標識時,根據(jù)所述第一數(shù)據(jù)標識查詢第二緩存空間,所述第二緩存空間包括所述數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與所述部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識;
[0026]第三查詢模塊,被配置為所述第二查詢模塊在所述第二緩存空間中沒有查詢到所述第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)所述第一數(shù)據(jù)標識查詢所述數(shù)據(jù)庫。
[0027]可選的,所述裝置還包括:
[0028]緩存模塊,被配置為將所述數(shù)據(jù)庫中存儲的每個數(shù)據(jù)的數(shù)據(jù)標識緩存在所述第一緩存空間中。
[0029]可選的,所述裝置還包括:
[0030]更新模塊,被配置為在所述數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,根據(jù)所述發(fā)生變化的數(shù)據(jù),更新所述第一緩存空間。
[0031 ]可選的,所述更新模塊,包括:
[0032]緩存子模塊,用于在向所述數(shù)據(jù)庫中存儲數(shù)據(jù)時,將所述存儲的數(shù)據(jù)的數(shù)據(jù)標識緩存到所述第一緩存空間中;
[0033]刪除子模塊,用于在從所述數(shù)據(jù)庫中刪除數(shù)據(jù)時,將所述刪除的數(shù)據(jù)的數(shù)據(jù)標識從所述第一緩存空間中刪除。
[0034]可選的,所述第一緩存空間包括多個緩存節(jié)點,所述多個緩存節(jié)點中的每個緩存節(jié)點用于緩存不同的數(shù)據(jù)標識;
[0035]可選的,所述第一查詢模塊,包括:
[0036]確定子模塊,用于根據(jù)所述接收模塊接收的所述第一數(shù)據(jù)標識,確定待查詢的緩存節(jié)點;
[0037]查詢子模塊,用于根據(jù)所述接收模塊接收的所述第一數(shù)據(jù)標識,查詢所述待查詢的緩存節(jié)點。
[0038]根據(jù)本公開實施例的第三方面,提供一種數(shù)據(jù)查詢的裝置,該裝置包括:
[0039]處理器;
[0040]用于存儲所述處理器可執(zhí)行指令的存儲器;
[0041 ]其中,所述處理器被配置為:
[0042]接收查詢請求,所述查詢請求攜帶待查找的第一數(shù)據(jù)標識;
[0043]根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,所述第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識;
[0044]在所述第一緩存空間中查詢到所述第一數(shù)據(jù)標識時,根據(jù)所述第一數(shù)據(jù)標識查詢第二緩存空間,所述第二緩存空間包括所述數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與所述部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識;
[0045]在所述第二緩存空間中沒有查詢到所述第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)所述第一數(shù)據(jù)標識查詢所述數(shù)據(jù)庫。
[0046]本公開的實施例提供的技術方案可以包括以下有益效果:
[0047]通過設置第一緩存空間,并在該第一緩存空間中緩存數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)標識,使得當接收到數(shù)據(jù)查詢請求時,可以首先查詢該第一緩存空間中是否存儲有該數(shù)據(jù)標識,如果有,則說明該數(shù)據(jù)標識對應的數(shù)據(jù)一定在數(shù)據(jù)庫中,那么繼續(xù)查詢與該數(shù)據(jù)標識對應的數(shù)據(jù),然后返回查詢到的數(shù)據(jù)標識;如果該數(shù)據(jù)標識不在該第一緩存空間中,則拒絕該查詢請求;因此,在查詢數(shù)據(jù)時,只能查詢數(shù)據(jù)庫中已存儲的數(shù)據(jù),對于數(shù)據(jù)庫中沒有存儲的數(shù)據(jù)直接拒絕查詢請求,所以解決了惡意分子通過故意大量查詢沒有存儲在數(shù)據(jù)庫中的數(shù)據(jù),從而增加數(shù)據(jù)庫的訪問量,增大數(shù)據(jù)庫的壓力,進而導致系統(tǒng)崩潰,正常的服務不能繼續(xù)的問題;達到了減小數(shù)據(jù)庫壓力,提高數(shù)據(jù)庫的安全性的效果。
[0048]應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性的,并不能限制本公開。
【附圖說明】
[0049]此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本公開的實施例,并于說明書一起用于解釋本公開的原理。
[0050]圖1是根據(jù)部分示例性實施例示出的一種數(shù)據(jù)查詢方法架構圖;
[0051 ]圖2是根據(jù)一示例性實施例示出的一種數(shù)據(jù)查詢方法的流程圖;
[0052]圖3是根據(jù)另一示例性實施例示出的數(shù)據(jù)標識緩存方法的流程圖;
[0053]圖4是根據(jù)另一示例性實施例示出的一種數(shù)據(jù)查詢方法的流程圖;
[0054]圖5A是根據(jù)一示例性實施例示出的一種數(shù)據(jù)查詢裝置的框圖;
[0055]圖5B是根據(jù)再一示例性實施例示出的一種數(shù)據(jù)查詢裝置的框圖;
[0056]圖5C根據(jù)另一示例性實施例示出的一種根據(jù)第一數(shù)據(jù)標識查詢第一緩存空間裝置的框圖;
[0057]圖f5D是根據(jù)再一示例性實施例示出的一種更新第一緩存空間裝置的框圖;
[0058]圖6是根據(jù)一示例性實施例示出的一種數(shù)據(jù)查詢裝置的框圖。
【具體實施方式】
[0059]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
[0060]圖1是根據(jù)部分示例性實施例示出的一種數(shù)據(jù)查詢方法架構圖,如圖1所示,該架構可以包括:第一緩存空間110、第二緩存空間120、數(shù)據(jù)庫130和日志140。
[0061]第一緩存空間110,用于存儲數(shù)據(jù)庫130內(nèi)所有數(shù)據(jù)的數(shù)據(jù)標識。并且當該數(shù)據(jù)庫130內(nèi)的數(shù)據(jù)標識發(fā)生變化時,對應更新第一緩存空間110內(nèi)的數(shù)據(jù)標識:當數(shù)據(jù)庫130內(nèi)的數(shù)據(jù)標識被刪除時,同時對應刪除第一緩存空間110內(nèi)的數(shù)據(jù)標識;當數(shù)據(jù)庫130內(nèi)的增加數(shù)據(jù)標識時,同時對應從第一緩存空間110內(nèi)的增加數(shù)據(jù)標識。
[0062]如圖1所示,該第一緩存空間110可包括多個緩存節(jié)點,圖1中以3個緩存節(jié)點為例,該多個緩存節(jié)點中的每個緩存節(jié)點用于緩存不同的數(shù)據(jù)標識。
[0063]第二緩存空間120,該第二緩存空間120包括該數(shù)據(jù)庫130中存儲的部分或全部數(shù)據(jù),以及與該部分或全部數(shù)據(jù)對應的第二數(shù)據(jù)標識。該部分或全部數(shù)據(jù)以及該第二數(shù)據(jù)標識可以通過如下方法得到:將距當前最近預設時間內(nèi)查詢的第二數(shù)據(jù)以及與該第二數(shù)據(jù)對應的第二數(shù)據(jù)標識緩存在該第二緩存空間120中,或者是將查詢頻率滿足預設值的第二數(shù)據(jù)以及與該第二數(shù)據(jù)對應的第二數(shù)據(jù)標識緩存在該第二緩存空間120中。
[0064]數(shù)據(jù)庫130,用于存儲數(shù)據(jù),并在數(shù)據(jù)存入該數(shù)據(jù)庫130時,為該數(shù)據(jù)設置數(shù)據(jù)標識,并建立數(shù)據(jù)與數(shù)據(jù)標識的對應關系,將數(shù)據(jù)與數(shù)據(jù)標識一并存儲在數(shù)據(jù)庫130內(nèi)??蛇x的,數(shù)據(jù)庫130中增加一個數(shù)據(jù),則為該增加的數(shù)據(jù)設置對應數(shù)據(jù)標識;數(shù)據(jù)庫130中刪除一個數(shù)據(jù),則刪除該數(shù)據(jù)對應的數(shù)據(jù)標識。
[0065]日志140,用于監(jiān)控數(shù)據(jù)庫130中的數(shù)據(jù)及數(shù)據(jù)標識的變化,當監(jiān)控到數(shù)據(jù)庫130中增加一個數(shù)據(jù)及數(shù)據(jù)標識時,則通知第一緩存空間110增加該新增加的數(shù)據(jù)標識,當監(jiān)控到數(shù)據(jù)庫130中刪除一個數(shù)據(jù)及數(shù)據(jù)標識時,則通知第一緩存空間110刪除該刪除的數(shù)據(jù)標識。以使得第一緩存空間110中的數(shù)據(jù)標識與數(shù)據(jù)庫130中的數(shù)據(jù)標識相同。
[0066]當然日志140還用于監(jiān)控第一緩存空間110和第二緩存空間120內(nèi)的數(shù)據(jù)變化情況,以方便數(shù)據(jù)庫系統(tǒng)維修。
[0067]圖2是根據(jù)一示例性實施例示出的一種數(shù)據(jù)查詢方法的流程圖,如圖2所示,該方法包括以下步驟:
[0068]在步驟201中,接收查詢請求,該查詢請求攜帶待查找的第一數(shù)據(jù)標識。
[0069]在步驟202中,根據(jù)該第一數(shù)據(jù)標識查詢第一緩存空間,該第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識。
[0070]在步驟203中,在該第一緩存空間中查詢到該第一數(shù)據(jù)標識時,根據(jù)該第一數(shù)據(jù)標識查詢第二緩存空間,該第二緩存空間包括該數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與該部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識。
[0071]在步驟204中,在該第二緩存空間中沒有查詢到該第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)該第一數(shù)據(jù)標識查詢該數(shù)據(jù)庫。
[0072]綜上所述,本公開實施例中提供的數(shù)據(jù)查詢方法,通過設置第一緩存空間,并在該第一緩存空間中緩存數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)標識,使得當接收到數(shù)據(jù)查詢請求時,可以首先查詢該第一緩存空間中是否存儲有該數(shù)據(jù)標識,如果有,則說明該數(shù)據(jù)標識對應的數(shù)據(jù)一定在數(shù)據(jù)庫中,那么繼續(xù)查詢與該數(shù)據(jù)標識對應的數(shù)據(jù),然后返回查詢到的數(shù)據(jù)標識;如果該數(shù)據(jù)標識不在該第一緩存空間中,則拒絕該查詢請求;因此,在查詢數(shù)據(jù)時,只能查詢數(shù)據(jù)庫中已存儲的數(shù)據(jù),對于數(shù)據(jù)庫中沒有存儲的數(shù)據(jù)直接拒絕查詢請求,所以解決了惡意分子通過故意大量查詢沒有存儲在數(shù)據(jù)庫中的數(shù)據(jù),從而增加數(shù)據(jù)庫的訪問量,增大數(shù)據(jù)庫的壓力,進而導致系統(tǒng)崩潰,正常的服務不能繼續(xù)的問題;達到了減小數(shù)據(jù)庫壓力,提高數(shù)據(jù)庫的安全性的效果。
[0073]圖3是根據(jù)另一示例性實施例示出的數(shù)據(jù)標識緩存方法的流程圖。該方法包括:在將每一個數(shù)據(jù)存入數(shù)據(jù)庫時,為該數(shù)據(jù)設置數(shù)據(jù)標識;將數(shù)據(jù)庫中所有的數(shù)據(jù)標識緩存到第一緩存空間。如圖3所示,該方法包括以下步驟:
[0074]在步驟301中,在將每一個數(shù)據(jù)存入數(shù)據(jù)庫時,為該數(shù)據(jù)設置數(shù)據(jù)標識。
[0075]—般情況下,數(shù)據(jù)庫中會包括較多數(shù)據(jù),而且每個數(shù)據(jù)會包括多個數(shù)據(jù)內(nèi)容,為了使用方便可以為該每個數(shù)據(jù)設置一個數(shù)據(jù)標識,用該數(shù)據(jù)標識代表該數(shù)據(jù)。比如,一個數(shù)據(jù)庫是某個學校的學生教學信息管理系統(tǒng),該系統(tǒng)中的每個數(shù)據(jù)包括了一個學生幾乎所有的信息,示例性的,該系統(tǒng)中一個數(shù)據(jù)為以下所有信息:姓名、性別、年齡、身高、年級、院系、專業(yè)、編號、課程、成績等。為了管理方便可以為該每個數(shù)據(jù)設置一個數(shù)據(jù)標識,比如可以用學生的學號代表與該學生對應的數(shù)據(jù)以及數(shù)據(jù)中的所有數(shù)據(jù)內(nèi)容。
[0076]在將數(shù)據(jù)存入數(shù)據(jù)庫時,可以通過如下三種方法為數(shù)據(jù)設置數(shù)據(jù)標識:
[0077]第一種,可以根據(jù)數(shù)據(jù)內(nèi)容的特點為數(shù)據(jù)設置數(shù)據(jù)標識。
[0078]比如,一個數(shù)據(jù)內(nèi)容包括多個信息,可以從該多個信息中選取一個或是幾個信息,并將該一個或是幾個信息使用字符表示,進而得到與該數(shù)據(jù)對應的數(shù)據(jù)標識。示例性的,仍以上述學生教學信息管理系統(tǒng)為例,則可選取每個數(shù)據(jù)中的年級、院系、專業(yè)和編號這四個信息作為每個數(shù)據(jù)的數(shù)據(jù)標識。
[0079]可選的,可以根據(jù)選取的信息的數(shù)量,將數(shù)據(jù)標識設置為由多個字符段組成的字符串,每個信息用一個字符段表示,每個字符段又由多個字符組成。仍以上述學生教學信息管理系統(tǒng)為例,選取每個數(shù)據(jù)中的年級、院系、專業(yè)和編號這四個信息作為每個數(shù)據(jù)的數(shù)據(jù)標識,則該數(shù)據(jù)標識由四個字符段組成。第一個信息,也即年級,用第一字符段表示,由四個字符組成;第二個信息,也即院系,用第二字符段表示,由兩個字符組成;第三個信息,也即專業(yè),用第三字符段表示,由兩個字符組成;第四個信息,也即編號,用第四字符段表示,由四個字符組成。
[0080]例如:該學生教學信息管理系統(tǒng)中的一個數(shù)據(jù)為:李明、男、19、180、2012級、08、24、0725、01、90,則可以設置該數(shù)據(jù)的數(shù)據(jù)標識為201208240725。
[0081]第二種,可以根據(jù)該數(shù)據(jù)存入該數(shù)據(jù)庫的先后順序為數(shù)據(jù)設置數(shù)據(jù)標識。比如,將第一個存入數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)標識設置為I,將第二個存入數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)標識設置為2,將第三個存入數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)標識設置為3,以此類推,為存入數(shù)據(jù)庫中的每個數(shù)據(jù)設置數(shù)據(jù)標識。
[0082]當然也可以根據(jù)要存儲的數(shù)據(jù)的復雜度或是其它因素,為數(shù)據(jù)庫的數(shù)據(jù)設置數(shù)據(jù)標識,在這里不做限制。
[0083]可選的,當該數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,數(shù)據(jù)發(fā)生變化指數(shù)據(jù)庫中的數(shù)據(jù)刪除或增加,對應修改該發(fā)生變化的數(shù)據(jù)的數(shù)據(jù)標識。可選的,數(shù)據(jù)庫中增加一個數(shù)據(jù),則為該增加的數(shù)據(jù)設置對應數(shù)據(jù)標識;數(shù)據(jù)庫中刪除一個數(shù)據(jù),則刪除該數(shù)據(jù)對應的數(shù)據(jù)標識。例如,在上述教學信息管理系統(tǒng)中增加了一個學生的數(shù)據(jù),則對應增加與該學生的數(shù)據(jù)對應的數(shù)據(jù)標識,示例性的,如果在該學校2012年級,計算機院系,計算機科學與技術專業(yè)增加了一名學生的數(shù)據(jù),則增加該學生的數(shù)據(jù)對應的數(shù)據(jù)標識:201208240726;如果在該學校2012年級,計算機院系,計算機科學與技術專業(yè)刪除了一名學生的數(shù)據(jù)(與該數(shù)據(jù)對應的數(shù)據(jù)標識是201208240725),則刪除該學生的數(shù)據(jù)對應的數(shù)據(jù)標識:201208240725。
[0084]可選的,在某個數(shù)據(jù)不發(fā)生變化時,也可以修改該數(shù)據(jù)的數(shù)據(jù)標識。比如,在另外一個數(shù)據(jù)庫中,一個數(shù)據(jù)為A,與A對應的數(shù)據(jù)標識是I,另一個數(shù)據(jù)是B,與B對應的數(shù)據(jù)標識是2??梢詫和B的數(shù)據(jù)標識交換,使數(shù)據(jù)A與數(shù)據(jù)標識2對應,而數(shù)據(jù)B與數(shù)據(jù)標識I對應。
[0085]本公開中的數(shù)據(jù)庫為廣義數(shù)據(jù)庫,該數(shù)據(jù)庫可以為任意類型的數(shù)據(jù)庫,比如,可以為關系型數(shù)據(jù)庫,分布式數(shù)據(jù)庫,層次型數(shù)據(jù)庫;還可以是一些后端系統(tǒng),比如向用戶提供數(shù)據(jù)的服務器。
[0086]在步驟302中,將數(shù)據(jù)庫中存儲的每個數(shù)據(jù)的數(shù)據(jù)標識緩存在第一緩存空間中。
[0087]該第一緩存空間可包括多個緩存節(jié)點,該多個緩存節(jié)點中的每個緩存節(jié)點用于緩存不同的數(shù)據(jù)標識。該多個緩存節(jié)點可以根據(jù)數(shù)據(jù)標識的特點將該第一緩存空間劃分得至IJ。下面例舉了幾種將第一緩存空間劃分為多個緩存節(jié)點的方法:
[0088]第一種,可以根據(jù)數(shù)據(jù)標識自身的特點將第一緩存空間劃分為多個緩存節(jié)點。
[0089]比如,第一緩存空間中緩存了某個學校的碩士研究生教學信息管理系統(tǒng)中的每個數(shù)據(jù)的數(shù)據(jù)標識,那么這些數(shù)據(jù)標識一般會體現(xiàn)學生的年級、院系、專業(yè)等。所以該第一緩存空間包括的緩存節(jié)點可以根據(jù)年級進行劃分,也可以根據(jù)院系進行劃分,還可以根據(jù)專業(yè)進行劃分。假如該第一緩存空間包括的緩存節(jié)點根據(jù)年級進行劃分,那么可以把第一緩存空間劃分為三個節(jié)點,第一個節(jié)點用來存儲碩士研究生一年級學生的每個數(shù)據(jù)的數(shù)據(jù)標識;第二個節(jié)點用來存儲碩士研究生二年級學生的每個數(shù)據(jù)的數(shù)據(jù)標識;第三個節(jié)點用來存儲碩士研究生三年級學生的每個數(shù)據(jù)的數(shù)據(jù)標識。
[0090]第二種,如果該數(shù)據(jù)標識是簡單的順序編號,比如數(shù)據(jù)標識使用大于等于I的整數(shù)連續(xù)編號,則可以根據(jù)數(shù)據(jù)標識的數(shù)量和編號順序?qū)⒌谝痪彺婵臻g劃分為多個緩存節(jié)點。
[0091]例如,假設第一緩存空間中共有1000個數(shù)據(jù)標識,則可以將第一緩存空間劃分為4個緩存節(jié)點,每個緩存節(jié)點里存儲250個數(shù)據(jù)標識??蛇x的,第一緩存節(jié)點存儲1-250這250個數(shù)據(jù)標識,第二個緩存節(jié)點存儲251-500這250個數(shù)據(jù)標識,第三個緩存節(jié)點存儲501-750這250個數(shù)據(jù)標識,第四個緩存節(jié)點存儲751-1000這250個數(shù)據(jù)標識。
[0092]第三種,對數(shù)據(jù)標識的末尾位進行取模運算,根據(jù)運算結果的可能劃分第一緩存空間。
[0093]比如,對數(shù)據(jù)標識的末尾位進行取模3運算,那么運算結果只有0、1和2三種可能,則將第一緩存空間劃分為三個緩存節(jié)點,第一個緩存節(jié)點用于存儲數(shù)據(jù)標識末尾位取模3運算后結果為O的數(shù)據(jù)標識,第二個緩存節(jié)點用于存儲數(shù)據(jù)標識末尾位取模3運算后結果為I的數(shù)據(jù)標識,第三個緩存節(jié)點用于存儲數(shù)據(jù)標識末尾位取模3運算后結果為2的數(shù)據(jù)標識。
[0094]上述劃分第一緩存空間的方法要求數(shù)據(jù)庫中數(shù)據(jù)標識的末尾位為數(shù)字,但如果有數(shù)據(jù)標識的末尾位并非為數(shù)字,則可以建立該非數(shù)字字符與數(shù)字的對應的關系,將該非數(shù)字字符轉(zhuǎn)換為數(shù)字后,再進行取模運算。
[0095]當然還可以根據(jù)第一緩存空間中緩存的數(shù)據(jù)標識的其它特點,將第一緩存空間劃分為多個緩存節(jié)點,在這里有做介紹。
[0096]將該第一緩存空間劃分為多個緩存節(jié)點后,每個節(jié)點中存儲具有相同特性的數(shù)據(jù)標識,而兩個不同的緩存節(jié)點內(nèi)存儲的數(shù)據(jù)標識具有不同的特點。比如,將上述學生教學信息管理系統(tǒng)中的數(shù)據(jù)標識按照年級存儲在三個緩存節(jié)點中,則在每一個緩存節(jié)點中都存儲了同一個年級學生的數(shù)據(jù)的數(shù)據(jù)標識,以使得在查詢某個數(shù)據(jù)標識時,可以首先確定與該數(shù)據(jù)標識對應的緩存節(jié)點,然后從該確定的緩存節(jié)點中查詢該數(shù)據(jù)標識,以提高查詢速度。
[0097]可選的,還可以為每個緩存節(jié)點設置緩存節(jié)點標識,該緩存節(jié)點標識與該緩存節(jié)點內(nèi)緩存的數(shù)據(jù)標識存在對應關系。比如,上述第一緩存空間的第一個緩存節(jié)點存儲了碩士研究生一年級學生的每個數(shù)據(jù)的數(shù)據(jù)標識,則可以為該第一個緩存節(jié)點設置“一年級”標識,并存儲一年級與2012(假設2012級是一年級)的對應關系,那么如果數(shù)據(jù)標識是以2012開頭,則說明該數(shù)據(jù)標識存儲在緩存節(jié)點標識為一年級的緩存節(jié)點內(nèi);第二個節(jié)點存儲了碩士研究生二年級學生的每個數(shù)據(jù)的數(shù)據(jù)標識,可以為該第二個緩存節(jié)點設置“二年級”標識,并存儲二年級與2011(假設2011級是二年級)的對應關系,那么如果數(shù)據(jù)標識是以2011開頭,則說明該數(shù)據(jù)標識存儲在緩存節(jié)點標識為二年級的緩存節(jié)點內(nèi);第三個節(jié)點存儲了碩士研究生三年級學生的每個數(shù)據(jù)的數(shù)據(jù)標識,可以為該第三個緩存節(jié)點設置“三年級”標識,并存儲三年級與2010(假設2010級是三年級)的對應關系,那么如果數(shù)據(jù)標識是以2010開頭,則說明該數(shù)據(jù)標識存儲在緩存節(jié)點標識為三年級的緩存節(jié)點內(nèi)。當然這三個緩存節(jié)點標識:“一年級”、“二年級”和“三年級”還可以分別依次對應設置為“2012”、“2011”和
“2010” ο
[0098]為每個緩存節(jié)點設置緩存節(jié)點標識后,可以加快數(shù)據(jù)標識的查找速度。具體如何加快查找速度,將在下述步驟中介紹。
[0099]可選的,當該數(shù)據(jù)庫中的數(shù)據(jù)標識發(fā)生變化時,根據(jù)該發(fā)生變化的數(shù)據(jù)標識,更新該第一緩存空間。比如,在向該數(shù)據(jù)庫中存儲數(shù)據(jù)時,將該存儲的數(shù)據(jù)的數(shù)據(jù)標識緩存到該第一緩存空間中;在從該數(shù)據(jù)庫中刪除數(shù)據(jù)時,將該刪除的數(shù)據(jù)的數(shù)據(jù)標識從該第一緩存空間中刪除。
[0100]例如:在上述教學信息管理系統(tǒng)中增加了一個學生的數(shù)據(jù),則在第一緩存空間中對應增加與該學生的數(shù)據(jù)對應的數(shù)據(jù)標識,假如該數(shù)據(jù)標識為201208240726,則在第一緩存空間中增加201208240726;如果在上述教學信息管理系統(tǒng)中刪除了一個學生的數(shù)據(jù),則在第一緩存空間中對應刪除與該學生的數(shù)據(jù)對應的數(shù)據(jù)標識,假如該數(shù)據(jù)標識為201208240726,則在第一緩存空間中刪除201208240726。
[0101]當該第一緩存空間只有一個緩存節(jié)點時,本步驟可以為:獲取數(shù)據(jù)庫中第一個數(shù)據(jù)的數(shù)據(jù)標識,并將該第一個數(shù)據(jù)的數(shù)據(jù)標識存儲在第一緩存空間,再獲取數(shù)據(jù)庫中第二個數(shù)據(jù)的數(shù)據(jù)標識,并將該第二個數(shù)據(jù)的數(shù)據(jù)標識存儲在第一緩存空間,再獲取數(shù)據(jù)庫中第三個數(shù)據(jù)的數(shù)據(jù)標識,并將該第三個數(shù)據(jù)的數(shù)據(jù)標識存儲在第一緩存空間,依此類推,直到數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)標識都存儲在第一緩存空間為止。
[0102]當該第一緩存空間包括多個緩存節(jié)點時,本步驟可以為:獲取數(shù)據(jù)庫中第一個數(shù)據(jù)的數(shù)據(jù)標識,根據(jù)該第一個數(shù)據(jù)的數(shù)據(jù)標識從所有緩存節(jié)點內(nèi)獲取與該第一個數(shù)據(jù)的數(shù)據(jù)標識對應的緩存節(jié)點,并將該第一個數(shù)據(jù)的數(shù)據(jù)標識存儲在與該第一個數(shù)據(jù)的數(shù)據(jù)標識對應的緩存節(jié)點內(nèi),再獲取數(shù)據(jù)庫中第二個數(shù)據(jù)的數(shù)據(jù)標識,根據(jù)該第二個數(shù)據(jù)的數(shù)據(jù)標識從所有緩存節(jié)點內(nèi)獲取與該第二個數(shù)據(jù)的數(shù)據(jù)標識對應的緩存節(jié)點,并將該第二個數(shù)據(jù)的數(shù)據(jù)標識存儲在與該第二個數(shù)據(jù)的數(shù)據(jù)標識對應的緩存節(jié)點內(nèi),再獲取數(shù)據(jù)庫中第三個數(shù)據(jù)的數(shù)據(jù)標識,根據(jù)該第三個數(shù)據(jù)的數(shù)據(jù)標識從所有緩存節(jié)點內(nèi)獲取與該第三個數(shù)據(jù)的數(shù)據(jù)標識對應的緩存節(jié)點,并將該第三個數(shù)據(jù)的數(shù)據(jù)標識存儲在與該第三個數(shù)據(jù)的數(shù)據(jù)標識對應的緩存節(jié)點內(nèi),依此類推,直到數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)標識都存儲在與該數(shù)據(jù)標識對應的緩存節(jié)點內(nèi)為止。
[0103]綜上所述,本公開實施例中提供的數(shù)據(jù)標識緩存方法,通過將數(shù)據(jù)庫中所有數(shù)據(jù)標識緩存在第一緩存空間,使得在接收到數(shù)據(jù)查詢請求后,僅通過查詢第一緩存空間就可以判斷該要查詢的數(shù)據(jù)是否存儲在數(shù)據(jù)庫中,如果存儲在數(shù)據(jù)庫中則響應該查詢請求,如果不在數(shù)據(jù)庫中則拒絕該查詢請求,由于拒絕查詢數(shù)據(jù)庫中并沒有的數(shù)據(jù);從而解決了惡意分子通過故意大量查詢沒有存儲在數(shù)據(jù)庫中的數(shù)據(jù),從而增加數(shù)據(jù)庫的訪問量,增大數(shù)據(jù)庫的壓力,進而導致系統(tǒng)崩潰,正常的服務不能繼續(xù)的問題;達到了減小數(shù)據(jù)庫壓力,提高數(shù)據(jù)庫的安全性的效果。
[0104]圖4是根據(jù)另一示例性實施例示出的一種數(shù)據(jù)查詢方法的流程圖。該方法包括:在接收到要查詢的數(shù)據(jù)對應的數(shù)據(jù)標識后,首先查詢第一緩存空間,如果該數(shù)據(jù)標識在第一緩存空間中,則接著查詢第二緩存空間,如果該數(shù)據(jù)標識在該第二緩存空間,則返回該數(shù)據(jù)標識對應的數(shù)據(jù);如果該數(shù)據(jù)標識不在該第二緩存空間中,則查詢數(shù)據(jù)庫,返回該數(shù)據(jù)標識對應的數(shù)據(jù)。如圖4所示,該方法包括以下步驟:
[0105]在步驟401中,接收查詢請求,該查詢請求攜帶待查找的第一數(shù)據(jù)標識。
[0106]用戶可以通過數(shù)據(jù)庫系統(tǒng)提供的用戶界面輸入查詢請求,該查詢請求至少攜帶有待查找的第一數(shù)據(jù)的第一數(shù)據(jù)標識,當然還可以攜帶有緩存節(jié)點標識等其它信息。比如,該查詢請求是:201208240725,或者是:一年級、1208240725。
[0107]在步驟402中,根據(jù)該第一數(shù)據(jù)標識,確定待查詢的緩存節(jié)點。
[0108]可選的,可以根據(jù)第一緩存空間的劃分方法來確定待查詢的緩存節(jié)點。本實施例給出三種確定待查詢的緩存節(jié)點的方法,這三種方法分別與前述步驟302中劃分第一緩存空間的方法對應。
[0109]第一種,可以根據(jù)每個緩存節(jié)點中存儲的數(shù)據(jù)標識的自身特點來確定待查詢的緩存節(jié)點。
[0110]仍以前述某個學校的碩士研究生教學信息管理系統(tǒng)為例,由于將該系統(tǒng)的第一緩存空間劃分為三個緩存節(jié)點,每個緩存節(jié)點存儲一個年級學生的數(shù)據(jù)標識,所以在從接收到的查詢請求中獲取到該第一數(shù)據(jù)標識時,首先判斷該第一數(shù)據(jù)標識對應的年級(如在步驟301中的方法,在設置數(shù)據(jù)標識時,將數(shù)據(jù)標識與年級對應),再根據(jù)年級與緩存節(jié)點的對應關系確定待查詢的緩存節(jié)點。
[0111]比如,接收到的查詢請求攜帶的數(shù)據(jù)標識是201208240725時,則判斷出該數(shù)據(jù)標識對應的一年級,然后再判斷該一年級對應的緩存節(jié)點是第一緩存節(jié)點,所以該確定待查詢的緩存節(jié)點是第一緩存節(jié)點。
[0112]當然,如果接收到的查詢請求是一年級、1208240725時,則直接確定待查詢的緩存節(jié)點是緩存節(jié)點標識為一年級的緩存節(jié)點,也即第一緩存節(jié)點。
[0113]第二種,如果每個緩存節(jié)點中存儲的數(shù)據(jù)標識是簡單的順序編號,則根據(jù)該順序編號確定待查詢的緩存節(jié)點。
[0114]仍以前述步驟302中第二種劃分第一緩存空間的例子為例,在從接收到的查詢請求中獲取到該第一數(shù)據(jù)標識時,首先判斷該第一數(shù)據(jù)標識在哪個數(shù)據(jù)段內(nèi),然后判斷該數(shù)據(jù)段對應的緩存節(jié)點,將該緩存節(jié)點確定為待查詢的緩存節(jié)點。
[0115]比如,接收到的查詢請求攜帶的第一數(shù)據(jù)標識是50,則判斷該數(shù)據(jù)標識是處于1-250這個數(shù)據(jù)段,然后判斷出該數(shù)據(jù)段與第一個緩存節(jié)點對應。則確定出該待查詢的緩存節(jié)點為該第一緩存節(jié)點。
[0116]第三種,如果每個緩存節(jié)點中存儲的數(shù)據(jù)標識的末尾位進行取模運算后可得到不同運算結果,則可根據(jù)該數(shù)據(jù)標識末尾位進行取模運算后得到的結果確定待查詢的緩存節(jié)點。
[0117]仍以前述步驟302中第三種劃分第一緩存空間的例子為例,在從接收到的查詢請求中獲取到該第一數(shù)據(jù)標識時,首先對該第一數(shù)據(jù)標識進行取模運算,然后判斷該運算結果對應的緩存節(jié)點,將該緩存節(jié)點確定為待查詢的緩存節(jié)點。
[0118]比如,對數(shù)據(jù)標識的末尾位進行取模3運算以例,如果接收到的查詢請求攜帶的第一數(shù)據(jù)標識是50,則對50進行取模3運算,運算的結果是2,然后判斷出2與第三個緩存節(jié)點對應。則確定出該待查詢的緩存節(jié)點為該第三緩存節(jié)點。
[0119]可選的,當該第一緩存空間只有一個緩存節(jié)點時,該確定待查詢的緩存節(jié)點即為該第一緩存空間。
[0120]在步驟403中,根據(jù)該第一數(shù)據(jù)標識,查詢該待查詢的緩存節(jié)點。
[0121]因為,第一緩存空間中存儲了數(shù)據(jù)庫中所有的數(shù)據(jù)的數(shù)據(jù)標識,且由步驟302可知,第一緩存空間包括的同一個緩存節(jié)點內(nèi)存儲了具有相同特點的數(shù)據(jù)標識,不同的緩存節(jié)點內(nèi)存儲了不同特點的數(shù)據(jù)標識。所以當該待查詢的緩存節(jié)點中包括該第一數(shù)據(jù)標識時,則說明該第一數(shù)據(jù)標識對應的數(shù)據(jù)一定在數(shù)據(jù)庫中;如果該待查詢的緩存節(jié)點中不包括該第一數(shù)據(jù)標識時,該第一數(shù)據(jù)標識對應的數(shù)據(jù)一定不在第二緩存空間和數(shù)據(jù)庫中。
[0122]本步驟可以為:將該第一數(shù)據(jù)標識與確定的待查詢的緩存節(jié)點中的每個數(shù)據(jù)標識進行比對,如果在該待查詢的緩存節(jié)點中查找到與該第一數(shù)據(jù)標識相同的數(shù)據(jù)標識時,則執(zhí)行步驟404;如果該待查詢的緩存節(jié)點中沒查找到與該第一數(shù)據(jù)標識相同的數(shù)據(jù)標識時,則拒絕該查詢請求,結束操作。
[0123]可選的,當該第一緩存空間只有一個緩存節(jié)點時,本步驟可以為:將該第一數(shù)據(jù)標識與第一緩存空間中的每個數(shù)據(jù)標識進行比對,如果在該第一緩存空間中查找到與該第一數(shù)據(jù)標識相同的數(shù)據(jù)標識時,則執(zhí)行步驟404;如果在該第一緩存空間中沒查找到與該第一數(shù)據(jù)標識相同的數(shù)據(jù)標識時,則拒絕該查詢請求,結束操作。
[0124]在該待查詢的緩存節(jié)點中沒查找到與該第一數(shù)據(jù)標識相同的數(shù)據(jù)標識時,拒絕該查詢請求,以防止惡意分子故意大量查詢沒有存儲在數(shù)據(jù)庫中的數(shù)據(jù),從而增加數(shù)據(jù)庫的訪問量,導致系統(tǒng)崩潰,正常的服務不能繼續(xù)的問題。
[0125]在步驟404中,在該第一緩存空間中查詢到該第一數(shù)據(jù)標識時,根據(jù)該第一數(shù)據(jù)標識查詢第二緩存空間。
[0126]該第二緩存空間包括該數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù),以及與該部分或全部數(shù)據(jù)對應的第二數(shù)據(jù)標識。該部分或全部數(shù)據(jù)以及該第二數(shù)據(jù)標識可以通過如下方法得到:將距當前最近預設時間內(nèi)查詢的第二數(shù)據(jù)以及與該第二數(shù)據(jù)對應的第二數(shù)據(jù)標識緩存在該第二緩存空間中,或者是將查詢頻率滿足預設值的的第二數(shù)據(jù)以及與該第二數(shù)據(jù)對應的第二數(shù)據(jù)標識緩存在該第二緩存空間中。當然該第二緩存空間中存儲的第二數(shù)據(jù)及第二數(shù)據(jù)標識還可以通過其它方法得到,在這里不做限制。
[0127]本步驟可以為:將該第一數(shù)據(jù)標識與該第二緩存空間中的每個數(shù)據(jù)標識進行比對,查找到與該第一數(shù)據(jù)標識相同的數(shù)據(jù)標識時,返回與該第一數(shù)據(jù)標識對應的數(shù)據(jù),操作結束;如果該第二緩存空間中沒有查找到與該第一數(shù)據(jù)標識相同的數(shù)據(jù)標識時,則執(zhí)行步驟405。
[0128]在步驟405中,在該第二緩存空間中沒有查詢到該第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)該第一數(shù)據(jù)標識查詢該數(shù)據(jù)庫。
[0129]由于第一緩存空間中存儲了該數(shù)據(jù)庫中存儲的每個數(shù)據(jù)的數(shù)據(jù)標識,所以當該第一數(shù)據(jù)標識不在第二緩存空間時,該數(shù)據(jù)標識一定在該數(shù)據(jù)庫中。所以在該第二緩存空間中沒有查詢到該第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則該第一數(shù)據(jù)標識對應的數(shù)據(jù)一定在數(shù)據(jù)庫中,所以根據(jù)該第一數(shù)據(jù)標識查詢該數(shù)據(jù)庫,返回與該第一數(shù)據(jù)標識對應的數(shù)據(jù)。
[0130]本步驟可以為:將該第一數(shù)據(jù)標識與該數(shù)據(jù)庫中的每個數(shù)據(jù)標識進行比對,查找到與該第一數(shù)據(jù)標識相同的數(shù)據(jù)標識時,返回與該第一數(shù)據(jù)標識對應的數(shù)據(jù),操作結束。
[0131]綜上所述,本公開實施例中提供的數(shù)據(jù)查詢方法,通過設置第一緩存空間,并在該第一緩存空間中緩存數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)標識,使得當接收到數(shù)據(jù)查詢請求時,可以首先查詢該第一緩存空間中是否存儲有該數(shù)據(jù)標識,如果有,則說明該數(shù)據(jù)標識對應的數(shù)據(jù)一定在數(shù)據(jù)庫中,那么繼續(xù)查詢與該數(shù)據(jù)標識對應的數(shù)據(jù),然后返回查詢到的數(shù)據(jù)標識;如果該數(shù)據(jù)標識不在該第一緩存空間中,則拒絕該查詢請求;因此,在查詢數(shù)據(jù)時,只能查詢數(shù)據(jù)庫中已存儲的數(shù)據(jù),對于數(shù)據(jù)庫中沒有存儲的數(shù)據(jù)直接拒絕查詢請求,所以解決了惡意分子通過故意大量查詢沒有存儲在數(shù)據(jù)庫中的數(shù)據(jù),從而增加數(shù)據(jù)庫的訪問量,增大數(shù)據(jù)庫的壓力,進而導致系統(tǒng)崩潰,正常的服務不能繼續(xù)的問題;達到了減小數(shù)據(jù)庫壓力,提高數(shù)據(jù)庫的安全性的效果。
[0132]下述為本公開裝置實施例,可以用于執(zhí)行本公開方法實施例。對于本公開裝置實施例中未披露的細節(jié),請參照本公開方法實施例。
[0133]圖5A是根據(jù)一示例性實施例示出的一種數(shù)據(jù)查詢裝置的框圖,如圖5A所示,該數(shù)據(jù)查詢裝置包括但不限于:接收模塊501、第一查詢模塊502、第二查詢模塊503、第三查詢模塊504。
[0134]接收模塊501,被配置為接收查詢請求,該查詢請求攜帶待查找的第一數(shù)據(jù)標識。
[0135]第一查詢模塊502,被配置為根據(jù)該接收模塊501接收到的該第一數(shù)據(jù)標識查詢第一緩存空間,該第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識。
[0136]第二查詢模塊503,被配置為該第一查詢模塊502在該第一緩存空間中查詢到該第一數(shù)據(jù)標識時,根據(jù)該第一數(shù)據(jù)標識查詢第二緩存空間,該第二緩存空間包括該數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與該部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識。
[0137]第三查詢模塊504,被配置為該第二查詢模塊503在該第二緩存空間中沒有查詢到該第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)該第一數(shù)據(jù)標識查詢該數(shù)據(jù)庫。
[0138]可選的,該第一緩存空間包括多個緩存節(jié)點,該多個緩存節(jié)點中的每個緩存節(jié)點用于緩存不同的數(shù)據(jù)標識。
[0139]—般情況下,數(shù)據(jù)庫中會包括較多數(shù)據(jù),而且每個數(shù)據(jù)會包括多個數(shù)據(jù)內(nèi)容,為了使用方便可以為該每個數(shù)據(jù)設置一個數(shù)據(jù)標識,用該數(shù)據(jù)標識代表該數(shù)據(jù)。比如,一個數(shù)據(jù)庫是某個學校的學生教學信息管理系統(tǒng),該系統(tǒng)中的每個數(shù)據(jù)包括了一個學生幾乎所有的信息,示例性的,該系統(tǒng)中一個數(shù)據(jù)為以下所有信息:姓名、性別、年齡、身高、年級、院系、專業(yè)、編號、課程、成績等。為了管理方便可以為該每個數(shù)據(jù)設置一個數(shù)據(jù)標識,比如可以用學生的學號代表與該學生對應的數(shù)據(jù)以及數(shù)據(jù)中的所有數(shù)據(jù)內(nèi)容。
[0140]在將數(shù)據(jù)存入數(shù)據(jù)庫時,可以通過如下三種方法為數(shù)據(jù)設置數(shù)據(jù)標識:
[0141 ]第一種,可以根據(jù)數(shù)據(jù)內(nèi)容的特點為數(shù)據(jù)設置數(shù)據(jù)標識。
[0142]比如,一個數(shù)據(jù)內(nèi)容包括多個信息,可以從該多個信息中選取一個或是幾個信息,并將該一個或是幾個信息使用字符表示,進而得到與該數(shù)據(jù)對應的數(shù)據(jù)標識。示例性的,仍以上述學生教學信息管理系統(tǒng)為例,則可選取每個數(shù)據(jù)中的年級、院系、專業(yè)和編號這四個信息作為每個數(shù)據(jù)的數(shù)據(jù)標識。
[0143]可選的,可以根據(jù)選取的信息的數(shù)量,將數(shù)據(jù)標識設置為由多個字符段組成的字符串,每個信息用一個字符段表示,每個字符段又由多個字符組成。仍以上述學生教學信息管理系統(tǒng)為例,選取每個數(shù)據(jù)中的年級、院系、專業(yè)和編號這四個信息作為每個數(shù)據(jù)的數(shù)據(jù)標識,則該數(shù)據(jù)標識由四個字符段組成。第一個信息,也即年級,用第一字符段表示,由四個字符組成;第二個信息,也即院系,用第二字符段表示,由兩個字符組成;第三個信息,也即專業(yè),用第三字符段表示,由兩個字符組成;第四個信息,也即編號,用第四字符段表示,由四個字符組成。
[0144]第二種,可以根據(jù)該數(shù)據(jù)存入該數(shù)據(jù)庫的先后順序為數(shù)據(jù)設置數(shù)據(jù)標識。比如,將第一個存入數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)標識設置為I,將第二個存入數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)標識設置為2,將第三個存入數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)標識設置為3,以此類推,為存入數(shù)據(jù)庫中的每個數(shù)據(jù)設置數(shù)據(jù)標識。
[0145]當然也可以根據(jù)要存儲的數(shù)據(jù)的復雜度或是其它因素,為數(shù)據(jù)庫的數(shù)據(jù)設置數(shù)據(jù)標識,在這里不做限制。
[0146]可選的,當該數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,對應修改該發(fā)生變化的數(shù)據(jù)的數(shù)據(jù)標識??蛇x的,數(shù)據(jù)庫中增加一個數(shù)據(jù),則為該增加的數(shù)據(jù)設置對應數(shù)據(jù)標識;數(shù)據(jù)庫中刪除一個數(shù)據(jù),則刪除該數(shù)據(jù)對應的數(shù)據(jù)標識。例如,在上述教學信息管理系統(tǒng)中增加了一個學生的數(shù)據(jù),則對應增加與該學生的數(shù)據(jù)對應的數(shù)據(jù)標識,示例性的,如果在該學校2012年級,計算機院系,計算機科學與技術專業(yè)增加了一名學生的數(shù)據(jù),則增加該學生的數(shù)據(jù)對應的數(shù)據(jù)標識:201208240726;如果在該學校2012年級,計算機院系,計算機科學與技術專業(yè)刪除了一名學生的數(shù)據(jù)(與該數(shù)據(jù)對應的數(shù)據(jù)標識是201208240725),則刪除該學生的數(shù)據(jù)對應的數(shù)據(jù)標識:201208240725。
[0147]可選的,在某個數(shù)據(jù)不發(fā)生變化時,也可以修改該數(shù)據(jù)的數(shù)據(jù)標識。比如,在另外一個數(shù)據(jù)庫中,一個數(shù)據(jù)為A,與A對應的數(shù)據(jù)標識是I,另一個數(shù)據(jù)是B,與B對應的數(shù)據(jù)標識是2??梢詫和B的數(shù)據(jù)標識交換,使數(shù)據(jù)A與數(shù)據(jù)標識2對應,而數(shù)據(jù)B與數(shù)據(jù)標識I對應。
[0148]本公開中的數(shù)據(jù)庫為廣義數(shù)據(jù)庫,該數(shù)據(jù)庫可以為任意類型的數(shù)據(jù)庫,比如,可以為關系型數(shù)據(jù)庫,分布式數(shù)據(jù)庫,層次型數(shù)據(jù)庫;還可以是一些后端系統(tǒng),比如向用戶提供數(shù)據(jù)的服務器。
[0149]用戶可以通過數(shù)據(jù)庫系統(tǒng)提供的用戶界面輸入查詢請求,該查詢請求至少攜帶有待查找的第一數(shù)據(jù)的第一數(shù)據(jù)標識,當然還可以攜帶有緩存節(jié)點標識等其它信息。比如,該查詢請求是:201208240725,或者是:一年級、1208240725。
[0150]可選的,參見圖5B,該裝置還包括但不限于:
[0151]緩存模塊505,被配置為將該數(shù)據(jù)庫中存儲的每個數(shù)據(jù)的數(shù)據(jù)標識緩存在該第一緩存空間中。
[0152]該第一緩存空間可包括多個緩存節(jié)點,該多個緩存節(jié)點中的每個緩存節(jié)點用于緩存不同的數(shù)據(jù)標識。該多個緩存節(jié)點可以根據(jù)數(shù)據(jù)標識的特點將該第一緩存空間劃分得至IJ。下面例舉了幾種將第一緩存空間劃分為多個緩存節(jié)點的方法:
[0153]第一種,可以根據(jù)數(shù)據(jù)標識自身的特點將第一緩存空間劃分為多個緩存節(jié)點。
[0154]比如,第一緩存空間中緩存了某個學校的碩士研究生教學信息管理系統(tǒng)中的每個數(shù)據(jù)的數(shù)據(jù)標識,那么這些數(shù)據(jù)標識一般會體現(xiàn)學生的年級、院系、專業(yè)等。所以該第一緩存空間包括的緩存節(jié)點可以根據(jù)年級進行劃分,也可以根據(jù)院系進行劃分,還可以根據(jù)專業(yè)進行劃分。假如該第一緩存空間包括的緩存節(jié)點根據(jù)年級進行劃分,那么可以把第一緩存空間劃分為三個節(jié)點,第一個節(jié)點用來存儲碩士研究生一年級學生的每個數(shù)據(jù)的數(shù)據(jù)標識;第二個節(jié)點用來存儲碩士研究生二年級學生的每個數(shù)據(jù)的數(shù)據(jù)標識;第三個節(jié)點用來存儲碩士研究生三年級學生的每個數(shù)據(jù)的數(shù)據(jù)標識。
[0155]第二種,如果該數(shù)據(jù)標識是簡單的順序編號,比如數(shù)據(jù)標識使用大于等于I的整數(shù)連續(xù)編號,則可以根據(jù)數(shù)據(jù)標識的數(shù)量和編號順序?qū)⒌谝痪彺婵臻g劃分為多個緩存節(jié)點。
[0156]第三種,對數(shù)據(jù)標識的末尾位進行取模運算,根據(jù)運算結果的可能劃分第一緩存空間。
[0157]比如,對數(shù)據(jù)標識的末尾位進行取模3運算,那么運算結果只有0、1和2三種可能,則將第一緩存空間劃分為三個緩存節(jié)點,第一個緩存節(jié)點用于存儲數(shù)據(jù)標識末尾位取模3運算后結果為O的數(shù)據(jù)標識,第二個緩存節(jié)點用于存儲數(shù)據(jù)標識末尾位取模3運算后結果為I的數(shù)據(jù)標識,第三個緩存節(jié)點用于存儲數(shù)據(jù)標識末尾位取模3運算后結果為2的數(shù)據(jù)標識。
[0158]上述劃分第一緩存空間的方法要求數(shù)據(jù)庫中數(shù)據(jù)標識的末尾位為數(shù)字,但如果有數(shù)據(jù)標識的末尾位并非為數(shù)字,則可以建立該非數(shù)字字符與數(shù)字的對應的關系,將該非數(shù)字字符轉(zhuǎn)換為數(shù)字后,再進行取模運算。
[0159]當然還可以根據(jù)第一緩存空間中緩存的數(shù)據(jù)標識的其它特點,將第一緩存空間劃分為多個緩存節(jié)點,在這里有做介紹。
[0160]將該第一緩存空間劃分為多個緩存節(jié)點后,每個節(jié)點中存儲具有相同特性的數(shù)據(jù)標識,而兩個不同的緩存節(jié)點內(nèi)存儲的數(shù)據(jù)標識具有不同的特點。比如,將上述學生教學信息管理系統(tǒng)中的數(shù)據(jù)標識按照年級存儲在三個緩存節(jié)點中,則在每一個緩存節(jié)點中都存儲了同一個年級學生的數(shù)據(jù)的數(shù)據(jù)標識,以使得在查詢某個數(shù)據(jù)標識時,可以首先確定與該數(shù)據(jù)標識對應的緩存節(jié)點,然后從該確定的緩存節(jié)點中查詢該數(shù)據(jù)標識,以提高查詢速度。
[0161]可選的,參見圖5C,該第一查詢模塊502,包括但不限于:確定子模塊5021、查詢子模塊5022。
[0162]確定子模塊5021,用于根據(jù)該接收模塊501接收的該第一數(shù)據(jù)標識,確定待查詢的緩存節(jié)點。
[0163]查詢子模塊5022,用于根據(jù)該接收模塊501接收的該第一數(shù)據(jù)標識,查詢該待查詢的緩存節(jié)點。
[0164]可選的,可以根據(jù)第一緩存空間的劃分方法來確定待查詢的緩存節(jié)點。本實施例給出三種確定待查詢的緩存節(jié)點的方法,這三種方法分別與前述緩存模塊505中劃分第一緩存空間的方法對應。
[0165]第一種,可以根據(jù)每個緩存節(jié)點中存儲的數(shù)據(jù)標識的自身特點來確定待查詢的緩存節(jié)點。
[0166]仍以前述某個學校的碩士研究生教學信息管理系統(tǒng)為例,由于將該系統(tǒng)的第一緩存空間劃分為三個緩存節(jié)點,每個緩存節(jié)點存儲一個年級學生的數(shù)據(jù)標識,所以在從接收到的查詢請求中獲取到該第一數(shù)據(jù)標識時,首先判斷該第一數(shù)據(jù)標識對應的年級,再根據(jù)年級與緩存節(jié)點的對應關系確定待查詢的緩存節(jié)點。
[0167]第二種,如果每個緩存節(jié)點中存儲的數(shù)據(jù)標識是簡單的順序編號,則根據(jù)該順序編號確定待查詢的緩存節(jié)點。
[0168]仍以前述緩存模塊505中第二種劃分第一緩存空間的例子為例,在從接收到的查詢請求中獲取到該第一數(shù)據(jù)標識時,首先判斷該第一數(shù)據(jù)標識在哪個數(shù)據(jù)段內(nèi),然后判斷該數(shù)據(jù)段對應的緩存節(jié)點,將該緩存節(jié)點確定為待查詢的緩存節(jié)點。
[0169]第三種,如果每個緩存節(jié)點中存儲的數(shù)據(jù)標識的末尾位進行取模運算后可得到不同運算結果,則可根據(jù)該數(shù)據(jù)標識末尾位進行取模運算后得到的結果確定待查詢的緩存節(jié)點。
[0170]仍以前述緩存模塊505中第三種劃分第一緩存空間的例子為例,在從接收到的查詢請求中獲取到該第一數(shù)據(jù)標識時,首先對該第一數(shù)據(jù)標識進行取模運算,然后判斷該運算結果對應的緩存節(jié)點,將該緩存節(jié)點確定為待查詢的緩存節(jié)點。
[0171]可選的,當該第一緩存空間只有一個緩存節(jié)點時,該確定待查詢的緩存節(jié)點即為該第一緩存空間。
[0172]該第二緩存空間包括該數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù),以及與該部分或全部數(shù)據(jù)對應的第二數(shù)據(jù)標識。該部分或全部數(shù)據(jù)以及該第二數(shù)據(jù)標識可以通過如下方法得到:將距當前最近預設時間內(nèi)查詢的第二數(shù)據(jù)以及與該第二數(shù)據(jù)對應的第二數(shù)據(jù)標識緩存在該第二緩存空間中,或者是將查詢頻率滿足預設值的的第二數(shù)據(jù)以及與該第二數(shù)據(jù)對應的第二數(shù)據(jù)標識緩存在該第二緩存空間中。當然該第二緩存空間中存儲的第二數(shù)據(jù)及第二數(shù)據(jù)標識還可以通過其它方法得到,在這里不做限制。
[0173]可選的,仍舊參見圖5B,該裝置還包括但不限于:
[0174]更新模塊506,被配置為在該數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,根據(jù)該發(fā)生變化的數(shù)據(jù),更新該第一緩存空間。
[0175]可選的,參見圖5D,該更新模塊506,包括但不限于:緩存子模塊5061、刪除子模塊5062ο
[0176]緩存子模塊5061,用于在向該數(shù)據(jù)庫中存儲數(shù)據(jù)時,將該存儲的數(shù)據(jù)的數(shù)據(jù)標識緩存到該第一緩存空間中。
[0177]刪除子模塊5062,用于在從該數(shù)據(jù)庫中刪除數(shù)據(jù)時,將該刪除的數(shù)據(jù)的數(shù)據(jù)標識從該第一緩存空間中刪除。
[0178]可選的,當該數(shù)據(jù)庫中的數(shù)據(jù)標識發(fā)生變化時,根據(jù)該發(fā)生變化的數(shù)據(jù)標識,更新該第一緩存空間。比如,在向該數(shù)據(jù)庫中存儲數(shù)據(jù)時,將該存儲的數(shù)據(jù)的數(shù)據(jù)標識緩存到該第一緩存空間中;在從該數(shù)據(jù)庫中刪除數(shù)據(jù)時,將該刪除的數(shù)據(jù)的數(shù)據(jù)標識從該第一緩存空間中刪除。
[0179]綜上所述,本公開實施例中提供的數(shù)據(jù)查詢裝置,通過設置第一緩存空間,并在該第一緩存空間中緩存數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)標識,使得當接收到數(shù)據(jù)查詢請求時,可以首先查詢該第一緩存空間中是否存儲有該數(shù)據(jù)標識,如果有,則說明該數(shù)據(jù)標識對應的數(shù)據(jù)一定在數(shù)據(jù)庫中,那么繼續(xù)查詢與該數(shù)據(jù)標識對應的數(shù)據(jù),然后返回查詢到的數(shù)據(jù)標識;如果該數(shù)據(jù)標識不在該第一緩存空間中,則拒絕該查詢請求;因此,在查詢數(shù)據(jù)時,只能查詢數(shù)據(jù)庫中已存儲的數(shù)據(jù),對于數(shù)據(jù)庫中沒有存儲的數(shù)據(jù)直接拒絕查詢請求,所以解決了惡意分子通過故意大量查詢沒有存儲在數(shù)據(jù)庫中的數(shù)據(jù),從而增加數(shù)據(jù)庫的訪問量,增大數(shù)據(jù)庫的壓力,進而導致系統(tǒng)崩潰,正常的服務不能繼續(xù)的問題;達到了減小數(shù)據(jù)庫壓力,提高數(shù)據(jù)庫的安全性的效果。
[0180]綜上所述,本公開實施例中提供的數(shù)據(jù)標識緩存裝置,還通過將數(shù)據(jù)庫中所有數(shù)據(jù)標識緩存在第一緩存空間,使得在接收到數(shù)據(jù)查詢請求后,僅通過查詢第一緩存空間就可以判斷該要查詢的數(shù)據(jù)是否存儲在數(shù)據(jù)庫中,如果存儲在數(shù)據(jù)庫中則響應該查詢請求,如果不在數(shù)據(jù)庫中則拒絕該查詢請求,由于拒絕查詢數(shù)據(jù)庫中并沒有的數(shù)據(jù);從而解決了惡意分子通過故意大量查詢沒有存儲在數(shù)據(jù)庫中的數(shù)據(jù),從而增加數(shù)據(jù)庫的訪問量,增大數(shù)據(jù)庫的壓力,進而導致系統(tǒng)崩潰,正常的服務不能繼續(xù)的問題;達到了減小數(shù)據(jù)庫壓力,提高數(shù)據(jù)庫的安全性的效果。
[0181]關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
[0182]本公開一示例性實施例提供了一種數(shù)據(jù)查詢裝置,能夠?qū)崿F(xiàn)本公開提供的數(shù)據(jù)查詢方法,該數(shù)據(jù)查詢裝置包括:處理器、用于存儲處理器可執(zhí)行指令的存儲器;
[0183]其中,處理器被配置為:
[0184]接收查詢請求,所述查詢請求攜帶待查找的第一數(shù)據(jù)標識;
[0185]根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,所述第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識;
[0186]在所述第一緩存空間中查詢到所述第一數(shù)據(jù)標識時,根據(jù)所述第一數(shù)據(jù)標識查詢第二緩存空間,所述第二緩存空間包括所述數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與所述部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識;
[0187]在所述第二緩存空間中沒有查詢到所述第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)所述第一數(shù)據(jù)標識查詢所述數(shù)據(jù)庫。
[0188]綜上所述,本公開實施例中提供的數(shù)據(jù)查詢裝置,通過設置第一緩存空間,并在該第一緩存空間中緩存數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)標識,使得當接收到數(shù)據(jù)查詢請求時,可以首先查詢該第一緩存空間中是否存儲有該數(shù)據(jù)標識,如果有,則說明該數(shù)據(jù)標識對應的數(shù)據(jù)一定在數(shù)據(jù)庫中,那么繼續(xù)查詢與該數(shù)據(jù)標識對應的數(shù)據(jù),然后返回查詢到的數(shù)據(jù)標識;如果該數(shù)據(jù)標識不在該第一緩存空間中,則拒絕該查詢請求;因此,在查詢數(shù)據(jù)時,只能查詢數(shù)據(jù)庫中已存儲的數(shù)據(jù),對于數(shù)據(jù)庫中沒有存儲的數(shù)據(jù)直接拒絕查詢請求,所以解決了惡意分子通過故意大量查詢沒有存儲在數(shù)據(jù)庫中的數(shù)據(jù),從而增加數(shù)據(jù)庫的訪問量,增大數(shù)據(jù)庫的壓力,進而導致系統(tǒng)崩潰,正常的服務不能繼續(xù)的問題;達到了減小數(shù)據(jù)庫壓力,提高數(shù)據(jù)庫的安全性的效果。
[0189]圖6是根據(jù)一示例性實施例示出的一種數(shù)據(jù)查詢的框圖。例如,裝置600可以是移動電話,計算機,數(shù)字廣播終端,消息收發(fā)設備,游戲控制臺,平板設備,醫(yī)療設備,健身設備,個人數(shù)字助理等。
[0190]參照圖6,裝置600可以包括以下一個或多個組件:處理組件602,存儲器604,電源組件606,多媒體組件608,音頻組件610,輸入/輸出(I/O)接口 612,傳感器組件614,以及通信組件616。
[0191]處理組件602通??刂蒲b置600的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關聯(lián)的操作。處理組件602可以包括一個或多個處理器618來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件602可以包括一個或多個模塊,便于處理組件602和其他組件之間的交互。例如,處理組件602可以包括多媒體模塊,以方便多媒體組件608和處理組件602之間的交互。
[0192]存儲器604被配置為存儲各種類型的數(shù)據(jù)以支持在裝置600的操作。這些數(shù)據(jù)的示例包括用于在裝置600上操作的任何應用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器604可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
[0193]電源組件606為裝置600的各種組件提供電力。電源組件606可以包括電源管理系統(tǒng),一個或多個電源,及其他與為裝置600生成、管理和分配電力相關聯(lián)的組件。
[0194]多媒體組件608包括在裝置600和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與觸摸或滑動操作相關的持續(xù)時間和壓力。在一些實施例中,多媒體組件608包括一個前置攝像頭和/或后置攝像頭。當裝置600處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學透鏡系統(tǒng)或具有焦距和光學變焦能力。
[0195]音頻組件610被配置為輸出和/或輸入音頻信號。例如,音頻組件610包括一個麥克風(MIC),當裝置600處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器604或經(jīng)由通信組件616發(fā)送。在一些實施例中,音頻組件610還包括一個揚聲器,用于輸出音頻信號。
[0196]I/O接口612為處理組件602和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
[0197]傳感器組件614包括一個或多個傳感器,用于為裝置600提供各個方面的狀態(tài)評估。例如,傳感器組件614可以檢測到裝置600的打開/關閉狀態(tài),組件的相對定位,例如組件為裝置600的顯示器和小鍵盤,傳感器組件614還可以檢測裝置600或裝置600—個組件的位置改變,用戶與裝置600接觸的存在或不存在,裝置600方位或加速/減速和裝置600的溫度變化。傳感器組件614可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件614還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應用中使用。在一些實施例中,該傳感器組件614還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
[0198]通信組件616被配置為便于裝置600和其他設備之間有線或無線方式的通信。裝置600可以接入基于通信標準的無線網(wǎng)絡,如W1-Fi,2G或3G,或它們的組合。在一個示例性實施例中,通信組件616經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關信息。在一個示例性實施例中,通信組件616還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術,紅外數(shù)據(jù)協(xié)會(IrDA)技術,超寬帶(UWB)技術,藍牙(BT)技術和其他技術來實現(xiàn)。
[0199]在示例性實施例中,裝置600可以被一個或多個應用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述數(shù)據(jù)查詢方法。
[0200]在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括指令的存儲器604,上述指令可由裝置600的處理器618執(zhí)行以完成上述數(shù)據(jù)查詢方法。例如,非臨時性計算機可讀存儲介質(zhì)可以是R0M、隨機存取存儲器(RAM)、⑶-R0M、磁帶、軟盤和光數(shù)據(jù)存儲設備等。
[0201]一種非臨時性計算機可讀存儲介質(zhì),當所述存儲介質(zhì)中的指令由裝置600的處理器執(zhí)行時,使得裝置600能夠執(zhí)行一種數(shù)據(jù)查詢方法,所述方法包括:
[0202]接收查詢請求,所述查詢請求攜帶待查找的第一數(shù)據(jù)標識;
[0203]根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,所述第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識;
[0204]在所述第一緩存空間中查詢到所述第一數(shù)據(jù)標識時,根據(jù)所述第一數(shù)據(jù)標識查詢第二緩存空間,所述第二緩存空間包括所述數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與所述部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識;
[0205]在所述第二緩存空間中沒有查詢到所述第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)所述第一數(shù)據(jù)標識查詢所述數(shù)據(jù)庫。
[0206]可選的,在所述根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間之前,所述方法還包括:
[0207]將所述數(shù)據(jù)庫中存儲的每個數(shù)據(jù)的數(shù)據(jù)標識緩存在所述第一緩存空間中。
[0208]可選的,在所述根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間之前,所述方法還包括:
[0209]在所述數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,根據(jù)所述發(fā)生變化的數(shù)據(jù),更新所述第一緩存空間。
[0210]可選的,所述在所述數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,根據(jù)所述發(fā)生變化的數(shù)據(jù),更新所述第一緩存空間,包括:
[0211]在向所述數(shù)據(jù)庫中存儲數(shù)據(jù)時,將所述存儲的數(shù)據(jù)的數(shù)據(jù)標識緩存到所述第一緩存空間中;
[0212]在從所述數(shù)據(jù)庫中刪除數(shù)據(jù)時,將所述刪除的數(shù)據(jù)的數(shù)據(jù)標識從所述第一緩存空間中刪除。
[0213]可選的,所述第一緩存空間包括多個緩存節(jié)點,所述多個緩存節(jié)點中的每個緩存節(jié)點用于緩存不同的數(shù)據(jù)標識;
[0214]可選的,所述根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,包括:
[0215]根據(jù)所述第一數(shù)據(jù)標識,確定待查詢的緩存節(jié)點;
[0216]根據(jù)所述第一數(shù)據(jù)標識,查詢所述待查詢的緩存節(jié)點。
[0217]本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理并包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權利要求指出。
[0218]應當理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權利要求來限制。
【主權項】
1.一種數(shù)據(jù)查詢方法,其特征在于,所述方法包括: 接收查詢請求,所述查詢請求攜帶待查找的第一數(shù)據(jù)標識; 根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,所述第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識; 在所述第一緩存空間中查詢到所述第一數(shù)據(jù)標識時,根據(jù)所述第一數(shù)據(jù)標識查詢第二緩存空間,所述第二緩存空間包括所述數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與所述部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識; 在所述第二緩存空間中沒有查詢到所述第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)所述第一數(shù)據(jù)標識查詢所述數(shù)據(jù)庫。2.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括: 將所述數(shù)據(jù)庫中存儲的每個數(shù)據(jù)的數(shù)據(jù)標識緩存在所述第一緩存空間中。3.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括: 在所述數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,根據(jù)所述發(fā)生變化的數(shù)據(jù),更新所述第一緩存空間。4.根據(jù)權利要求3所述的方法,其特征在于,所述在所述數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,根據(jù)所述發(fā)生變化的數(shù)據(jù),更新所述第一緩存空間,包括: 在向所述數(shù)據(jù)庫中存儲數(shù)據(jù)時,將所述存儲的數(shù)據(jù)的數(shù)據(jù)標識緩存到所述第一緩存空間中; 在從所述數(shù)據(jù)庫中刪除數(shù)據(jù)時,將所述刪除的數(shù)據(jù)的數(shù)據(jù)標識從所述第一緩存空間中刪除。5.根據(jù)權利要求1所述的方法,其特征在于,所述第一緩存空間包括多個緩存節(jié)點,所述多個緩存節(jié)點中的每個緩存節(jié)點用于緩存不同的數(shù)據(jù)標識; 所述根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,包括: 根據(jù)所述第一數(shù)據(jù)標識,確定待查詢的緩存節(jié)點; 根據(jù)所述第一數(shù)據(jù)標識,查詢所述待查詢的緩存節(jié)點。6.一種數(shù)據(jù)查詢裝置,其特征在于,所述裝置包括: 接收模塊,被配置為接收查詢請求,所述查詢請求攜帶待查找的第一數(shù)據(jù)標識; 第一查詢模塊,被配置為根據(jù)所述接收模塊接收到的所述第一數(shù)據(jù)標識查詢第一緩存空間,所述第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識; 第二查詢模塊,被配置為所述第一查詢模塊在所述第一緩存空間中查詢到所述第一數(shù)據(jù)標識時,根據(jù)所述第一數(shù)據(jù)標識查詢第二緩存空間,所述第二緩存空間包括所述數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與所述部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識; 第三查詢模塊,被配置為所述第二查詢模塊在所述第二緩存空間中沒有查詢到所述第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)所述第一數(shù)據(jù)標識查詢所述數(shù)據(jù)庫。7.根據(jù)權利要求6所述的裝置,其特征在于,所述裝置還包括: 緩存模塊,被配置為將所述數(shù)據(jù)庫中存儲的每個數(shù)據(jù)的數(shù)據(jù)標識緩存在所述第一緩存空間中。8.根據(jù)權利要求6所述的裝置,其特征在于,所述裝置還包括: 更新模塊,被配置為在所述數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變化時,根據(jù)所述發(fā)生變化的數(shù)據(jù),更新所述第一緩存空間。9.根據(jù)權利要求8所述的裝置,其特征在于,所述更新模塊,包括: 緩存子模塊,用于在向所述數(shù)據(jù)庫中存儲數(shù)據(jù)時,將所述存儲的數(shù)據(jù)的數(shù)據(jù)標識緩存到所述第一緩存空間中; 刪除子模塊,用于在從所述數(shù)據(jù)庫中刪除數(shù)據(jù)時,將所述刪除的數(shù)據(jù)的數(shù)據(jù)標識從所述第一緩存空間中刪除。10.根據(jù)權利要求6所述的裝置,其特征在于,所述第一緩存空間包括多個緩存節(jié)點,所述多個緩存節(jié)點中的每個緩存節(jié)點用于緩存不同的數(shù)據(jù)標識; 所述第一查詢模塊,包括: 確定子模塊,用于根據(jù)所述接收模塊接收的所述第一數(shù)據(jù)標識,確定待查詢的緩存節(jié)占.V , 查詢子模塊,用于根據(jù)所述接收模塊接收的所述第一數(shù)據(jù)標識,查詢所述待查詢的緩存節(jié)點。11.一種數(shù)據(jù)查詢裝置,其特征在于,所述裝置包括: 處理器; 用于存儲所述處理器可執(zhí)行指令的存儲器; 其中,所述處理器被配置為: 接收查詢請求,所述查詢請求攜帶待查找的第一數(shù)據(jù)標識; 根據(jù)所述第一數(shù)據(jù)標識查詢第一緩存空間,所述第一緩存空間包括數(shù)據(jù)庫中存儲的各數(shù)據(jù)的數(shù)據(jù)標識; 在所述第一緩存空間中查詢到所述第一數(shù)據(jù)標識時,根據(jù)所述第一數(shù)據(jù)標識查詢第二緩存空間,所述第二緩存空間包括所述數(shù)據(jù)庫中存儲的部分或全部數(shù)據(jù)及與所述部分或全部數(shù)據(jù)對應的數(shù)據(jù)標識; 在所述第二緩存空間中沒有查詢到所述第一數(shù)據(jù)標識對應的數(shù)據(jù)時,則根據(jù)所述第一數(shù)據(jù)標識查詢所述數(shù)據(jù)庫。
【文檔編號】G06F17/30GK105843951SQ201610224750
【公開日】2016年8月10日
【申請日】2016年4月12日
【發(fā)明人】竇錦帥, 譚國斌, 沈建榮
【申請人】北京小米移動軟件有限公司