緩存數(shù)據(jù)的查找方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種緩存數(shù)據(jù)的查找方法和裝置。
【背景技術(shù)】
[0002] 緩存可以表示對(duì)數(shù)據(jù)的一種存儲(chǔ)方式,其中,相比于在磁盤存儲(chǔ)器等落地式存儲(chǔ) 設(shè)備中存儲(chǔ)的數(shù)據(jù)來(lái)說(shuō),緩存的數(shù)據(jù)可以被相對(duì)快速地寫入或讀出。根據(jù)數(shù)據(jù)局部性原理, 由于訪問(wèn)過(guò)的數(shù)據(jù)通常會(huì)被再次訪問(wèn),因此可以將訪問(wèn)頻率較高的部分?jǐn)?shù)據(jù)緩存起來(lái),進(jìn) 而具體業(yè)務(wù)的執(zhí)行單元如處理器或服務(wù)器等可以優(yōu)先訪問(wèn)緩存中提取數(shù)據(jù),這樣就加快了 數(shù)據(jù)訪問(wèn)速度。
[0003] 由此可見(jiàn),緩存數(shù)據(jù)的目的是為了業(yè)務(wù)對(duì)其所需的緩存中的具體某個(gè)數(shù)據(jù)進(jìn)行查 找,為達(dá)到這一目的,為發(fā)明人所知的常用的緩存數(shù)據(jù)的查找方式之一是利用物理地址直 接在緩存中讀寫數(shù)據(jù)。一般來(lái)說(shuō),利用物理地址讀寫數(shù)據(jù)通??梢詫?shí)現(xiàn)較高的讀寫速度,然 而由于緩存數(shù)據(jù)的物理地址對(duì)于業(yè)務(wù)來(lái)說(shuō)通常是不透明的,或者說(shuō)業(yè)務(wù)無(wú)法識(shí)別在哪個(gè)物 理地址上存放的數(shù)據(jù)是業(yè)務(wù)所需的具有特定意義的數(shù)據(jù)。因此,作為一種改進(jìn)的方式,用于 管理緩存讀寫的設(shè)備可以維護(hù)有一張映射表,該映射表中記錄有為業(yè)務(wù)所知的標(biāo)識(shí)項(xiàng)與緩 存數(shù)據(jù)的物理地址之間的映射關(guān)系,從而業(yè)務(wù)可以通過(guò)預(yù)先定義的標(biāo)識(shí)項(xiàng)對(duì)緩存中的數(shù)據(jù) 進(jìn)行讀與。
[0004] 然而,上述查找方式及其對(duì)應(yīng)的緩存數(shù)據(jù)的管理方式并不利于體現(xiàn)出多個(gè)數(shù)據(jù)之 間的關(guān)聯(lián),例如,若業(yè)務(wù)需要查找某一用戶的相關(guān)信息,并且該相關(guān)信息包括多個(gè)方面的信 息,則業(yè)務(wù)通常需要先解析出該相關(guān)信息所包含的多個(gè)數(shù)據(jù)項(xiàng)以及多個(gè)數(shù)據(jù)項(xiàng)各自對(duì)應(yīng)的 標(biāo)識(shí)項(xiàng),進(jìn)而通知緩存管理相對(duì)獨(dú)立地查找出各標(biāo)識(shí)項(xiàng)所標(biāo)識(shí)的數(shù)據(jù)。顯然,這對(duì)業(yè)務(wù)自身 的功能提出了更高的要求,并且在大規(guī)模的數(shù)據(jù)讀取的背景下,會(huì)顯著地影響到業(yè)務(wù)的執(zhí) 行效率。針對(duì)這一問(wèn)題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實(shí)施例提供了一種緩存數(shù)據(jù)的查找方法和裝置,以至少解決在現(xiàn)有的緩存 數(shù)據(jù)的查找方式下業(yè)務(wù)訪問(wèn)緩存數(shù)據(jù)時(shí)需要執(zhí)行較為復(fù)雜的邏輯從而導(dǎo)致的業(yè)務(wù)執(zhí)行效 率較低的技術(shù)問(wèn)題。
[0006] 根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種緩存數(shù)據(jù)查找方法,包括:獲取用于對(duì) 緩存中的數(shù)據(jù)元素進(jìn)行查找的查詢條件,其中,上述緩存中的每個(gè)上述數(shù)據(jù)元素包括一個(gè) 或多個(gè)字段,每個(gè)上述字段包括字段類型和字段值,上述查詢條件用于指示待查找的字段 類型和待查找的字段值;在上述緩存中查找具有滿足上述查詢條件的字段的數(shù)據(jù)元素;若 查找到上述具有滿足上述查詢條件的字段的數(shù)據(jù)元素,則從上述緩存中讀出查找到的上述 數(shù)據(jù)元素。
[0007] 根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種緩存數(shù)據(jù)查找裝置,包括:獲取單 元,用于獲取用于對(duì)緩存中的數(shù)據(jù)元素進(jìn)行查找的查詢條件,其中,上述緩存中的每個(gè)上述 數(shù)據(jù)元素包括一個(gè)或多個(gè)字段,每個(gè)上述字段包括字段類型和字段值,上述查詢條件用于 指示待查找的字段類型和待查找的字段值;查找單元,用于在上述緩存中查找具有滿足上 述查詢條件的字段的數(shù)據(jù)元素;輸出單元,用于在查找到上述具有滿足上述查詢條件的字 段的數(shù)據(jù)元素時(shí),從上述緩存中讀出查找到的上述數(shù)據(jù)元素。
[0008] 在本發(fā)明實(shí)施例中,可以結(jié)合對(duì)緩存數(shù)據(jù)的結(jié)構(gòu)的進(jìn)一步定義,以提供基于查詢 條件對(duì)緩存中的一個(gè)或多個(gè)數(shù)據(jù)進(jìn)行查找的功能。具體地,在本發(fā)明實(shí)施例中,采用了數(shù)據(jù) 元素的形式實(shí)現(xiàn)對(duì)相互關(guān)聯(lián)的數(shù)據(jù)的存儲(chǔ),其中,每個(gè)數(shù)據(jù)元素可以包括多個(gè)字段,每個(gè)字 段可以包括字段類型和字段值,相互關(guān)聯(lián)的業(yè)務(wù)數(shù)據(jù)可以作為不同的字段值存入緩存中的 每個(gè)數(shù)據(jù)元素中,進(jìn)而業(yè)務(wù)需要獲取該相互關(guān)聯(lián)的業(yè)務(wù)數(shù)據(jù)時(shí),則可以基于特定的查詢條 件查找到包括特定的業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)元素,并且,由于業(yè)務(wù)預(yù)先向緩存中存入數(shù)據(jù)或者說(shuō) 字段值時(shí),可以提前配置對(duì)應(yīng)的字段類型,因此緩存中的業(yè)務(wù)數(shù)據(jù)對(duì)于業(yè)務(wù)來(lái)說(shuō)是透明的。 通過(guò)上述方式,便可以簡(jiǎn)化業(yè)務(wù)側(cè)的查詢操作,比如業(yè)務(wù)服務(wù)器可以僅向緩存管理發(fā)送查 詢條件,便可以獲取到所需的業(yè)務(wù)數(shù)據(jù),從而提高了業(yè)務(wù)的執(zhí)行效率,進(jìn)而解決了在現(xiàn)有的 緩存數(shù)據(jù)的查找方式下業(yè)務(wù)訪問(wèn)緩存數(shù)據(jù)時(shí)需要執(zhí)行較為復(fù)雜的邏輯從而導(dǎo)致的業(yè)務(wù)執(zhí) 行效率較低的技術(shù)問(wèn)題。
【附圖說(shuō)明】
[0009] 此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā) 明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0010] 圖1是根據(jù)本發(fā)明實(shí)施例的一種可選的緩存數(shù)據(jù)查找方法的示意圖;
[0011] 圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的緩存數(shù)據(jù)查找方法或裝置的實(shí)施環(huán)境的 不意圖;
[0012] 圖3是根據(jù)本發(fā)明實(shí)施例的一種可選的緩存數(shù)據(jù)查找裝置的示意圖。
【具體實(shí)施方式】
[0013] 為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的 附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是 本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù) 人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范 圍。
[0014] 需要說(shuō)明的是,本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)"第一"、"第 二"等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用 的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或 描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)"包括"和"具有"以及他們的任何變形,意圖在于 覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限 于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn) 品或設(shè)備固有的其它步驟或單元。
[0015] 實(shí)施例1
[0016] 根據(jù)本發(fā)明實(shí)施例,提供了一種緩存數(shù)據(jù)查找方法,如圖1所示,該方法包括:
[0017] S102 :獲取用于對(duì)緩存中的數(shù)據(jù)元素進(jìn)行查找的查詢條件,其中,緩存中的每個(gè)數(shù) 據(jù)元素包括一個(gè)或多個(gè)字段,每個(gè)字段包括字段類型和字段值,查詢條件用于指示待查找 的字段類型和待查找的字段值;
[0018] S104 :在緩存中查找具有滿足查詢條件的字段的數(shù)據(jù)元素;
[0019] S106:若查找到具有滿足查詢條件的字段的數(shù)據(jù)元素,則從緩存中讀出查找到的 數(shù)據(jù)元素。
[0020] 應(yīng)當(dāng)明確的是,本發(fā)明實(shí)施例所要解決的問(wèn)題之一是提供一種方法,以便于實(shí)現(xiàn) 對(duì)緩存的數(shù)據(jù)進(jìn)行有效查找。
[0021 ] 具體地,在本發(fā)明實(shí)施例中,緩存可以表示對(duì)數(shù)據(jù)的一種存儲(chǔ)方式,其中,相比于 在磁盤存儲(chǔ)器等落地式存儲(chǔ)設(shè)備中存儲(chǔ)的數(shù)據(jù)來(lái)說(shuō),緩存的數(shù)據(jù)可以被相對(duì)快速地寫入或 讀出。根據(jù)數(shù)據(jù)局部性原理,由于訪問(wèn)過(guò)的數(shù)據(jù)通常會(huì)被再次訪問(wèn),因此可以將訪問(wèn)頻率較 高的部分?jǐn)?shù)據(jù)緩存起來(lái),進(jìn)而具體業(yè)務(wù)的執(zhí)行單元如處理器或服務(wù)器等可以優(yōu)先訪問(wèn)緩存 中提取數(shù)據(jù),這樣就加快了數(shù)據(jù)訪問(wèn)速度。
[0022] 由此可見(jiàn),緩存數(shù)據(jù)的目的是為了業(yè)務(wù)對(duì)其所需的緩存中的具體某個(gè)數(shù)據(jù)進(jìn)行查 找,為達(dá)到這一目的,為發(fā)明人所知的常用的緩存數(shù)據(jù)的查找方式之一是利用物理地址直 接在緩存中讀寫數(shù)據(jù)。一般來(lái)說(shuō),利用物理地址讀寫數(shù)據(jù)通??梢詫?shí)現(xiàn)較高的讀寫速度,然 而由于緩存數(shù)據(jù)的物理地址對(duì)于業(yè)務(wù)來(lái)說(shuō)通常是不透明的,或者說(shuō)業(yè)務(wù)無(wú)法識(shí)別在哪個(gè)物 理地址上存放的數(shù)據(jù)是業(yè)務(wù)所需的具有特定意義的數(shù)據(jù)。因此,作為一種改進(jìn)的方式,用于 管理緩存讀寫的設(shè)備可以維護(hù)有一張映射表,該映射表中記錄有為業(yè)務(wù)所知的標(biāo)識(shí)項(xiàng)與緩 存數(shù)據(jù)的物理地址之間的映射關(guān)系,從而業(yè)務(wù)可以通過(guò)預(yù)先定義的標(biāo)識(shí)項(xiàng)對(duì)緩存中的數(shù)據(jù) 進(jìn)行讀與。
[0023] 然而,上述查找方式及其對(duì)應(yīng)的緩存數(shù)據(jù)的管理方式并不利于體現(xiàn)出多個(gè)數(shù)據(jù)之 間的關(guān)聯(lián),例如,若業(yè)務(wù)需要查找某一用戶的相關(guān)信息,并且該相關(guān)信息包括多個(gè)方面的信 息,則業(yè)務(wù)通常需要先解析出該相關(guān)信息所包含的多個(gè)數(shù)據(jù)項(xiàng)以及多個(gè)數(shù)據(jù)項(xiàng)各自對(duì)應(yīng)的 標(biāo)識(shí)項(xiàng),進(jìn)而通知緩存管理相對(duì)獨(dú)立地查找出各標(biāo)識(shí)項(xiàng)所標(biāo)識(shí)的數(shù)據(jù)。顯然,這對(duì)業(yè)務(wù)自身 的功能提出了更高的要求,并且在大規(guī)模的數(shù)據(jù)讀取的背景下,會(huì)顯著地影響到業(yè)務(wù)的執(zhí) 行效率。
[0024] 為解決這一問(wèn)題,在本發(fā)明實(shí)施例中,可以結(jié)合對(duì)緩存數(shù)據(jù)的結(jié)構(gòu)的進(jìn)一步定義, 以提供基于查詢條件對(duì)緩存中的一個(gè)或多個(gè)數(shù)據(jù)進(jìn)行查找的功能。具體地,在本發(fā)明實(shí)施 例中,采用了數(shù)據(jù)元素的形式實(shí)現(xiàn)對(duì)相互關(guān)聯(lián)的數(shù)據(jù)的存儲(chǔ),其中,每個(gè)數(shù)據(jù)元素可以包括 多個(gè)字段,每個(gè)字段可以包括字段類型和字段值,相互關(guān)聯(lián)的業(yè)務(wù)數(shù)據(jù)可以作為不同的字 段值存入緩存中的每個(gè)數(shù)據(jù)元素中,進(jìn)而業(yè)務(wù)需要獲取該相互關(guān)聯(lián)的業(yè)務(wù)數(shù)據(jù)時(shí),則可以 基于特定的查詢條件查找到包括特定的業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)元素,并且,由于業(yè)務(wù)預(yù)先向緩存 中存入數(shù)據(jù)或者說(shuō)字段值時(shí),可以提前配置對(duì)應(yīng)的字段類型,因此緩存中的業(yè)務(wù)數(shù)據(jù)對(duì)于 業(yè)務(wù)來(lái)說(shuō)是透明的。通過(guò)上述方式,便可以簡(jiǎn)化業(yè)務(wù)側(cè)的查詢操作,比如業(yè)務(wù)服務(wù)器可以僅 向緩存管理發(fā)送查詢條件,便可以獲取到所需的業(yè)務(wù)數(shù)據(jù),從而提高了業(yè)務(wù)的執(zhí)行效率,進(jìn) 而解決了在現(xiàn)有的緩存數(shù)據(jù)的查找方式下業(yè)務(wù)訪問(wèn)緩存數(shù)據(jù)時(shí)需要執(zhí)行較為復(fù)雜的邏輯 從而導(dǎo)致的業(yè)務(wù)執(zhí)行效率較低的技術(shù)問(wèn)題。
[0025] 下面將結(jié)合附圖和具體的實(shí)施例對(duì)本發(fā)明技術(shù)方案及其工作原理進(jìn)行更為詳細(xì) 的描述。首先結(jié)合圖2對(duì)本發(fā)明的技術(shù)方案的實(shí)施環(huán)境進(jìn)行示例性地描述。
[0026] 圖2示出了根據(jù)本發(fā)明實(shí)施例提供的查找方法的一種可行的實(shí)施環(huán)境。如圖2所 示,在本發(fā)明實(shí)施例中,業(yè)務(wù)服務(wù)器202與緩存服務(wù)器204之間存在數(shù)據(jù)連接,以便于業(yè)務(wù) 服務(wù)器202在需要在設(shè)置于緩存服務(wù)器204的緩存中讀寫數(shù)據(jù)時(shí),通過(guò)向緩存服務(wù)器204 發(fā)送的讀寫指令指示緩存服務(wù)器204執(zhí)行對(duì)應(yīng)的處理操作。進(jìn)一步可選地,在本發(fā)明實(shí)施 例中,還可以設(shè)置有落地式存儲(chǔ)服務(wù)器206,與緩存服務(wù)器204之間存在數(shù)據(jù)連接,以便于 在緩存空間不足時(shí)淘汰