[0082]在另一方面,在本發(fā)明實(shí)施例中,緩存的業(yè)務(wù)數(shù)據(jù)可以以數(shù)據(jù)元素的形式來(lái)存儲(chǔ), 一般地,業(yè)務(wù)數(shù)據(jù)具體可以是數(shù)據(jù)元素的字段中的字段值。具體地,在本發(fā)明實(shí)施例中,每 個(gè)數(shù)據(jù)元素可以包括多個(gè)字段,每個(gè)字段可以包括字段類型和字段值,
[0083]以實(shí)施例1中的表1所示的一個(gè)數(shù)據(jù)元素為例,其中,該數(shù)據(jù)元素可以表示與業(yè)務(wù) 所面向的某一用戶相關(guān)的信息。具體地,該數(shù)據(jù)元素可以包括表1中的數(shù)據(jù)項(xiàng):101、10086、 102、2014-1-31、103、1,這些數(shù)據(jù)項(xiàng)分別屬于三個(gè)字段a、b和c,其中,字段a可以包括字段 類型101和字段值10086,字段b可以包括字段類型102和字段值2014-1-31,字段c可以 包括字段類型103和字段值1。更具體地,字段類型101可以代表用戶ID,也即用戶信息中 的用戶ID為10086,字段類型102可以代表用戶的注冊(cè)時(shí)間,也即用戶信息中的注冊(cè)時(shí)間 為2014-1-31,字段類型103可以代表用戶狀態(tài),也即用戶信息中的用戶狀態(tài)為1,其中,用 戶狀態(tài)為1可以表示用戶處于活躍狀態(tài),用戶狀態(tài)為〇可以表示非活躍狀態(tài)。
[0084] 通過(guò)上述方式,便可以將相互關(guān)聯(lián)的多個(gè)業(yè)務(wù)數(shù)據(jù),例如用戶ID"10086"、注冊(cè)時(shí) 間"2014-1-31"和用戶狀態(tài)" 1"存入緩存區(qū),其中,除這些業(yè)務(wù)數(shù)據(jù)外,緩存中還存有與這 些字段值對(duì)應(yīng)的字段類型,并且包括字段值和字段類型的字段a、b和c均包含在一個(gè)數(shù)據(jù) 元素中,從而在標(biāo)識(shí)出這些業(yè)務(wù)數(shù)據(jù)之間的關(guān)聯(lián)的前提下,還可以對(duì)數(shù)據(jù)元素中的通過(guò)字 段類型來(lái)標(biāo)識(shí)的具有不同意義的字段值也即業(yè)務(wù)數(shù)據(jù)進(jìn)行跟蹤,進(jìn)而為后續(xù)處理所涉及的 基于字段類型和字段值的篩選提供了支持。
[0085] 在又一方面,在本發(fā)明實(shí)施例中,查詢條件可以用于指示待查找的字段類型和待 查找的字段值,換句話說(shuō),查詢條件可以圍繞字段類型和字段值來(lái)設(shè)置。例如,該查詢條件 可以針對(duì)數(shù)據(jù)元素中的一個(gè)字段進(jìn)行限定,比如限定數(shù)據(jù)元素中的具有某一特定字段類型 的字段的字段值所需滿足某一數(shù)值條件,或者,該查詢條件也可以對(duì)一個(gè)數(shù)據(jù)元素中的多 個(gè)字段的字段類型及其字段值所需滿足的條件進(jìn)行限定等,本發(fā)明對(duì)此不作限定。此外,該 查詢條件通??梢跃唧w表現(xiàn)為一個(gè)或一組關(guān)系式,然而這并非本發(fā)明唯一的實(shí)現(xiàn)方式,例 如該查詢條件也可以表現(xiàn)為某一具體的取值區(qū)間或取值范圍等,本發(fā)明對(duì)此不作限定。
[0086] 在此基礎(chǔ)上,根據(jù)本發(fā)明實(shí)施例提供的查找裝置,通過(guò)查找單元304,緩存服務(wù)器 可以在緩存中查找具有滿足查詢條件的字段的數(shù)據(jù)元素,進(jìn)而通過(guò)輸出單元306,從緩存中 讀出查找到的數(shù)據(jù)元素,并可以在后續(xù)處理中將讀出的數(shù)據(jù)元素返回給業(yè)務(wù)服務(wù)器。
[0087]在上述場(chǎng)景下,業(yè)務(wù)服務(wù)器需要獲取相互關(guān)聯(lián)的業(yè)務(wù)數(shù)據(jù)時(shí),則可以基于特定的 查詢條件查找到包括特定的業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)元素,并且,由于業(yè)務(wù)預(yù)先向緩存中存入業(yè)務(wù) 數(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)題。
[0088]具體來(lái)說(shuō),在本發(fā)明實(shí)施例中,查找單元304中所描述的查找操作可以根據(jù)查詢 條件來(lái)設(shè)置,并擇優(yōu)從目前或未來(lái)的為本領(lǐng)域技術(shù)人員所知的多種可行的查詢方式中選 取。其中,對(duì)于查詢條件為邏輯表達(dá)式的情形,作為一種可選的操作方式,在本發(fā)明實(shí)施例 中,上述查找單元304可以包括:
[0089] 1)第一查找模塊,用于查找具有待查找的字段且待查找的字段的字段值滿足邏輯 關(guān)系的數(shù)據(jù)元素作為具有滿足查詢條件的字段的數(shù)據(jù)元素,其中,查詢條件為包括字段類 型標(biāo)識(shí)和邏輯關(guān)系的邏輯表達(dá)式,待查找的字段具有由字段類型標(biāo)識(shí)所指示的字段類型。
[0090] 在本發(fā)明實(shí)施例中,查詢條件可以以邏輯表達(dá)式的形式出現(xiàn),從而進(jìn)一步地簡(jiǎn)化 業(yè)務(wù)服務(wù)器的接入。例如,對(duì)于表1所示的數(shù)據(jù)元素來(lái)說(shuō),若業(yè)務(wù)服務(wù)器需要訪問(wèn)該數(shù)據(jù)元 素,則可以向緩存服務(wù)器發(fā)送邏輯表達(dá)式:
[0091] "User_ID== 10086,',
[0092] 其中,User_ID可以是用于標(biāo)識(shí)字段類型101的字段類型標(biāo)識(shí),邏輯運(yùn)算符"= ="表示等于,則該邏輯表達(dá)式所指示的待查找的字段是字段類型為101的字段,所指示的 字段值是"等于10086",所包含的邏輯關(guān)系是字段類型101對(duì)應(yīng)的字段值應(yīng)當(dāng)滿足"等于 10086"這一條件。在上述場(chǎng)景下,根據(jù)步驟S2,由于字段a具有由字段類型標(biāo)識(shí)User_ID 所指示的字段類型101,因此步驟S2中所描述的待查找的字段可以是字段a,此外,由于待 查找的字段也即字段a的字段值10086滿足邏輯關(guān)系"等于10086",因此通過(guò)步驟S2可以 查找出如表1所示的數(shù)據(jù)元素。
[0093] 當(dāng)然,這只是一種示例,并非是對(duì)本發(fā)明的限定。例如,在本發(fā)明實(shí)施例中,邏輯表 達(dá)式還可以具有更為復(fù)雜的結(jié)構(gòu),例如,在一個(gè)實(shí)施例中,作為查詢條件的邏輯表達(dá)式也可 以是:
[0094] "Reg_Time>2013-l-l&&User_Status= = 1,'
[0095] 其中,Reg_Time可以是用于標(biāo)識(shí)字段類型102也即注冊(cè)時(shí)間的字段類型標(biāo)識(shí), USer_StatuS可以是用于標(biāo)識(shí)字段類型103也即用戶狀態(tài)的字段類型標(biāo)識(shí),邏輯運(yùn)算符"〉" 表示大于,"&&"表示邏輯與,"=="表示等于,由此可知,該邏輯表達(dá)式所體現(xiàn)出的邏輯關(guān) 系是字段類型102對(duì)應(yīng)的字段值大于2013-1-1,且字段類型103對(duì)應(yīng)的字段值等于1,從而 通過(guò)該邏輯表達(dá)式所查找到的數(shù)據(jù)元素對(duì)應(yīng)于注冊(cè)時(shí)間在2013年1月1日之后、并且用戶 狀態(tài)為活躍狀態(tài)的用戶的信息。
[0096] 換而言之,作為一種可選的方式,在本發(fā)明實(shí)施例中,上述第一查找模塊可以包 括:
[0097] 1)第一判斷子模塊,用于判斷緩存中的數(shù)據(jù)元素是否具有全部的待查找的字段;
[0098] 2)第二判斷子模塊,用于在緩存中的數(shù)據(jù)元素具有全部的待查找的字段時(shí),將判 斷出的數(shù)據(jù)元素中的每個(gè)待查找的字段的字段值代入到邏輯表達(dá)式中的與每個(gè)待查找的 字段對(duì)應(yīng)的字段類型標(biāo)識(shí)中,并判斷代入后的表達(dá)式是否滿足邏輯關(guān)系;
[0099] 3)處理子模塊,用于在代入后的表達(dá)式滿足邏輯關(guān)系時(shí),將判斷出的數(shù)據(jù)元素作 為具有滿足查詢條件的字段的數(shù)據(jù)元素。
[0100] 通過(guò)上述實(shí)施例,對(duì)本發(fā)明實(shí)施例提供的緩存數(shù)據(jù)查找裝置進(jìn)行了示例性地描 述。應(yīng)當(dāng)理解的是,上述實(shí)施例僅用于對(duì)本發(fā)明的理解,而并不會(huì)對(duì)本發(fā)明構(gòu)成任何不必要 的限定。例如,前述實(shí)施例以用戶信息記錄為例描述了一種可行的緩存數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)以及 對(duì)記錄有用戶相關(guān)信息的數(shù)據(jù)元素的查找方式,然而本發(fā)明并不會(huì)限定緩存的數(shù)據(jù)元素所 具體對(duì)應(yīng)的業(yè)務(wù),以及該業(yè)務(wù)所定義的數(shù)據(jù)元素中各字段的字段值的具體含義以及字段類 型的具體形式。
[0101] 在以上描述的基礎(chǔ)上,可選地,在本發(fā)明實(shí)施例中,與查找單元304耦合地,上述 查找裝置還可以包括:
[0102] 1)接收單元,用于接收業(yè)務(wù)服務(wù)器發(fā)送的請(qǐng)求查詢數(shù)據(jù)元素的消息,消息攜帶有 業(yè)務(wù)標(biāo)識(shí)和/或數(shù)據(jù)標(biāo)識(shí),其中,業(yè)務(wù)標(biāo)識(shí)用于標(biāo)識(shí)業(yè)務(wù)服務(wù)器所執(zhí)行的業(yè)務(wù),數(shù)據(jù)標(biāo)識(shí)用 于標(biāo)識(shí)多個(gè)數(shù)據(jù)元素之間的關(guān)聯(lián)特性;其中,
[0103] 查找單元304可以包括:
[0104] 1)第二查找模塊,用于在緩存中的與業(yè)務(wù)標(biāo)識(shí)和/或數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)記錄中 查找滿足查詢條件的數(shù)據(jù)元素。
[0105] 在本發(fā)明實(shí)施例中,由于某一特定業(yè)務(wù)所需訪問(wèn)的數(shù)據(jù)通常是與該業(yè)務(wù)相關(guān)的數(shù) 據(jù),因此在預(yù)先向緩存中存放數(shù)據(jù)時(shí),便可以將緩存的數(shù)據(jù)標(biāo)記為與該業(yè)務(wù)對(duì)應(yīng)。在上述場(chǎng) 景下,則可以通過(guò)業(yè)務(wù)標(biāo)識(shí)縮小數(shù)據(jù)元素的初始查找范圍,從而加快查找速度并提高查找 操作的效率。
[0106] 除此之外,還可以利用數(shù)據(jù)標(biāo)識(shí)縮小數(shù)據(jù)元素的查找范圍。例如,在本發(fā)明的一些 實(shí)施例中,多個(gè)數(shù)據(jù)元素之間也可以具有某種關(guān)聯(lián),在這一情形下,可以利用同一鍵值來(lái)標(biāo) 記相互關(guān)聯(lián)的多個(gè)數(shù)據(jù)元素,從而形成了具有鏈特性的一條數(shù)據(jù)記錄。在上述場(chǎng)景下,若業(yè) 務(wù)服務(wù)器所需訪問(wèn)的數(shù)據(jù)從屬于某一條數(shù)據(jù)記錄,則可以將該數(shù)據(jù)記錄的鍵值作為數(shù)據(jù)標(biāo) 識(shí),從而顯著地縮小了緩存服務(wù)器所執(zhí)行的查找操作的查找范圍。
[0107] 例如,對(duì)于表1所示的數(shù)據(jù)元素來(lái)說(shuō),該數(shù)據(jù)元素可以如前述實(shí)施例中所描述的, 用來(lái)記錄與某一用戶相關(guān)的信息,在另一實(shí)施例中,該表1所示的數(shù)據(jù)元素也可以用來(lái)記 錄與業(yè)務(wù)所面向的某一用戶相關(guān)的多個(gè)其他用戶的用戶信息,比如對(duì)于一款社交應(yīng)用來(lái) 說(shuō),其所生產(chǎn)的業(yè)務(wù)數(shù)據(jù)既可以包括該應(yīng)用的每個(gè)用戶的信息,也可以包括每個(gè)用戶所設(shè) 置的社交好友的信息,從而表1所示的數(shù)據(jù)元素可以用來(lái)記錄某一好友的用戶信息,如該 好友的用戶ID、注冊(cè)時(shí)間和活動(dòng)狀態(tài)等,并且該好友的這些信息可以在緩存中標(biāo)記為與該 用戶對(duì)應(yīng)。在上述場(chǎng)景下,若業(yè)務(wù)服務(wù)器所需提取的數(shù)據(jù)是某一用戶的滿足特定條件的好 友的信息,則業(yè)務(wù)服務(wù)器可以向緩存服務(wù)器發(fā)送該用戶的用戶ID作為數(shù)據(jù)標(biāo)識(shí),從而使得 緩存服務(wù)器在該數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的范圍內(nèi)查找,這將顯著地提升查找速度,并且為業(yè)務(wù)服務(wù) 器提供了更為便捷的訪問(wèn)配置接口。
[0108] 當(dāng)然,上述實(shí)施例僅提供了可行的實(shí)施方式之一,并非本發(fā)明全部的實(shí)施方式。例 如,在本發(fā)明的一些實(shí)施例中,業(yè)務(wù)服務(wù)器發(fā)送的請(qǐng)求查詢數(shù)據(jù)元素的消息中也可以不攜 帶有業(yè)務(wù)標(biāo)識(shí),而是預(yù)先通過(guò)業(yè)務(wù)服務(wù)器向緩存服務(wù)器的接入來(lái)判斷出具體是哪個(gè)業(yè)務(wù)需 要訪問(wèn)緩存數(shù)據(jù),進(jìn)而也可以將數(shù)據(jù)元素的查找范圍縮小到與接入的該業(yè)務(wù)對(duì)應(yīng)的數(shù)據(jù)記 錄。
[0109] 進(jìn)一步可選地,在本發(fā)明實(shí)施例中,上述查找裝置還可以包括:
[0110] 1)判斷單元,用于判斷緩