通過執(zhí)行所述前置線程從所述服務器中請求需要的服務,并將所述服務更新至所述緩存池,并返回選選取所述服務緩存線程池中的一個線程的步驟。
[0110]本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0111]這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0112]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0113]盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
[0114]顯然,本領(lǐng)域的技術(shù)人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。
【主權(quán)項】
1.一種緩存方法,其特征在于,包括: 選取線程隊列中的一個未執(zhí)行的線程,從緩存池中獲取所述線程需要的服務; 如果無法從所述緩存池中獲取所述線程需要的服務,則將所述線程設置為前置線程,通過執(zhí)行所述前置線程從所述服務器中請求需要的服務,并將所述服務更新至所述緩存池,并返回選取線程隊列中的一個未執(zhí)行的線程的步驟。2.如權(quán)利要求1所述的方法,其特征在于,從緩存池中獲取所述線程需要的服務之前,還包括: 選取線程隊列中的第一個線程,所述線程設置為前置線程,通過執(zhí)行所述前置線程從所述服務器中請求需要的服務,并將所述服務更新至所述緩存池,并返回選取線程隊列中的一個未執(zhí)行的線程的步驟。3.如權(quán)利要求1所述的方法,其特征在于,所述將所述線程設置為前置線程,包括: 若確定計數(shù)器KEY對應的狀態(tài)為空閑,則將所述計數(shù)器KEY對應的狀態(tài)設置為占用,所述計數(shù)器KEY用于指示是否已經(jīng)有線程被設置為前置線程; 獲取所述線程的類型標識,將所述線程的類型標識對應的類型修改為前置線程。4.如權(quán)利要求3所述的方法,其特征在于,將所述服務更新至所述緩存池之后,還包括: 將數(shù)據(jù)緩存KEY對應的狀態(tài)修改為已更新; 獲取所述線程的類型標識,將所述線程的類型標識對應的類型修改為普通線程; 將所述計數(shù)器KEY對應的狀態(tài)修改為空閑。5.如權(quán)利要求3所述的方法,其特征在于,該方法還包括: 若確定所述緩存池中有對應的服務失效時間小于或等于預先設定的值的服務,則判斷所述計數(shù)器KEY對應的狀態(tài)是否為占用; 若所述計數(shù)器KEY對應的狀態(tài)為占用,則通過執(zhí)行當前的前置線程將確定的服務在所述服務器中的最新版本更新至所述緩存池; 若所述計數(shù)器KEY對應的狀態(tài)為空閑,則將所述線程隊列第一個線程設置為前置線程,并通過執(zhí)行該前置線程將確定的服務在所述服務器中的最新版本更新至所述緩存池。6.如權(quán)利要求1所述的方法,其特征在于,選取線程隊列中的一個未執(zhí)行的線程,從緩存池中獲取所述線程需要的服務之前,還包括: 將所述線程隊列中的線程分配到與線程需要的服務的類型對應的服務緩存線程池中;針對每一個服務緩存線程池,選取所述服務緩存線程池中的一個線程,從所述緩存池中獲取所述線程需要的服務; 如果無法從所述緩存池中獲取所述線程需要的服務,則將所述線程設置為前置線程,通過執(zhí)行所述前置線程從所述服務器中請求需要的服務,并將所述服務更新至所述緩存池,并返回選選取所述服務緩存線程池中的一個線程的步驟。7.一種緩存裝置,其特征在于,包括: 第一獲取單元,用于選取線程隊列中的一個未執(zhí)行的線程,從緩存池中獲取所述線程需要的服務; 第二獲取單元,用于如果無法從所述緩存池中獲取所述線程需要的服務,則將所述線程設置為前置線程,通過執(zhí)行所述前置線程從所述服務器中請求需要的服務,并將所述服務更新至所述緩存池,并返回選取線程隊列中的一個未執(zhí)行的線程的步驟。8.如權(quán)利要求7所述的裝置,其特征在于,所述第二獲取單元,還用于: 選取線程隊列中的第一個線程,所述線程設置為前置線程,通過執(zhí)行所述前置線程從所述服務器中請求需要的服務,并將所述服務更新至所述緩存池,并返回選取線程隊列中的一個未執(zhí)行的線程的步驟。9.如權(quán)利要求7所述的裝置,其特征在于,所述第二獲取單元,還用于: 若確定計數(shù)器KEY對應的狀態(tài)為空閑,則將所述計數(shù)器KEY對應的狀態(tài)設置為占用,所述計數(shù)器KEY用于指示是否已經(jīng)有線程被設置為前置線程; 獲取所述線程的類型標識,將所述線程的類型標識對應的類型修改為前置線程。10.如權(quán)利要求9所述的裝置,其特征在于,所述第二獲取單元,還用于: 將數(shù)據(jù)緩存KEY對應的狀態(tài)修改為已更新; 獲取所述線程的類型標識,將所述線程的類型標識對應的類型修改為普通線程; 將所述計數(shù)器KEY對應的狀態(tài)修改為空閑。11.如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括更新單元,具體用于: 若確定所述緩存池中有對應的服務失效時間小于或等于預先設定的值的服務,則判斷所述計數(shù)器KEY對應的狀態(tài)是否為占用; 若所述計數(shù)器KEY對應的狀態(tài)為占用,則通過執(zhí)行當前的前置線程將確定的服務在所述服務器中的最新版本更新至所述緩存池; 若所述計數(shù)器KEY對應的狀態(tài)為空閑,則將所述線程隊列第一個線程設置為前置線程,并通過執(zhí)行該前置線程將確定的服務在所述服務器中的最新版本更新至所述緩存池。12.如權(quán)利要求7所述的裝置,其特征在于,所述第二獲取單元,還用于: 將所述線程隊列中的線程分配到與線程需要的服務的類型對應的服務緩存線程池中;針對每一個服務緩存線程池,選取所述服務緩存線程池中的一個線程,從所述緩存池中獲取所述線程需要的服務; 如果無法從所述緩存池中獲取所述線程需要的服務,則將所述線程設置為前置線程,通過執(zhí)行所述前置線程從所述服務器中請求需要的服務,并將所述服務更新至所述緩存池,并返回選選取所述服務緩存線程池中的一個線程的步驟。
【專利摘要】本申請涉及數(shù)據(jù)緩存技術(shù)領(lǐng)域,尤其涉及一種緩存方法及裝置,用以解決現(xiàn)有技術(shù)中針對海量客戶端請求到達服務器,導致服務器處理效率低的技術(shù)問題,包括:首先從線程隊列中選取一個未執(zhí)行的線程,然后通過該線程從緩存池中獲取該線程需要的服務,如果獲取失敗,則將該線程設置為前置線程,前置線程可以去服務器中請求需要的服務,在該線程從服務器中獲取到需要的服務之后,將該服務更新至緩存池,然后從線程隊列中選取下一個未執(zhí)行的線程,由于緩存池中已經(jīng)存有相應的服務,因而線程可以直接從緩存池中獲取到相應的服務,從而使得海量的請求都可以從緩存池中獲取到相應的服務,提高了系統(tǒng)效率,減輕了服務器的負擔。
【IPC分類】G06F17/30
【公開號】CN105447092
【申請?zhí)枴緾N201510754054
【發(fā)明人】劉壯, 梁雷, 崔嘯
【申請人】聯(lián)動優(yōu)勢科技有限公司
【公開日】2016年3月30日
【申請日】2015年11月9日