本發(fā)明涉及數(shù)據(jù)管理技術(shù)領(lǐng)域,特別是涉及一種緩存更新方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)站的數(shù)據(jù)流越來越大,導(dǎo)致服務(wù)器數(shù)量越來越多,數(shù)據(jù)庫也越來越大,傳統(tǒng)的服務(wù)器架構(gòu)不再適用。
為此,服務(wù)器集群的概念誕生了,人們建立了一個由服務(wù)器、分布式緩存系統(tǒng)和持久化數(shù)據(jù)構(gòu)成的服務(wù)器體系,分布式緩存取代了服務(wù)器的本地緩存,所有的服務(wù)器從分布式緩存中讀取數(shù)據(jù),而分布式緩存系統(tǒng)中的數(shù)據(jù)來源于持久化數(shù)據(jù)庫。各服務(wù)器通過Socket(套接字)連接分別與分布式緩存和持久化數(shù)據(jù)庫連接。服務(wù)器根據(jù)該用戶請求,先在分布式緩存中查找數(shù)據(jù),若在分布式緩存中未查找到數(shù)據(jù),該服務(wù)器通過Socket連接在持久化數(shù)據(jù)庫中查找數(shù)據(jù),再將通過Socket連接查找到的數(shù)據(jù)更新至分布式緩存中。當(dāng)服務(wù)器再次接收此類請求時,直接過通過Socket連接就可以在分布式緩存中查找到該數(shù)據(jù)。
但是,應(yīng)用現(xiàn)有技術(shù)中,每處理一次請求需要通過Socket連接從分布式緩存中獲取數(shù)據(jù),導(dǎo)致后端服務(wù)器與分布式緩存之間的網(wǎng)絡(luò)IO(輸入\輸出)較高,會產(chǎn)生網(wǎng)絡(luò)延時。另外,由于Socket連接為基于網(wǎng)絡(luò)協(xié)議的連接,數(shù)據(jù)的傳輸會受到網(wǎng)絡(luò)抖動的影響,網(wǎng)絡(luò)延時和網(wǎng)絡(luò)抖動的存在降低了服務(wù)器的吞吐量。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種緩存更新方法及裝置,以提高后端服務(wù)器的吞吐量。
為達到上述目的,本發(fā)明實施例提供了一種緩存更新方法,應(yīng)用于后端服務(wù)器,所述方法包括:
針對前端服務(wù)器發(fā)送的數(shù)據(jù)請求進行檢測;
當(dāng)檢測到所述數(shù)據(jù)請求為數(shù)據(jù)查找請求時,在本地緩存中查找與所述數(shù)據(jù)請求對應(yīng)的數(shù)據(jù);
如果未查找到,從持久化數(shù)據(jù)庫獲得所述數(shù)據(jù),并根據(jù)所述數(shù)據(jù)更新本地緩存。
可選的,所述方法還包括:
當(dāng)檢測到所述數(shù)據(jù)請求為數(shù)據(jù)更改請求時,根據(jù)所述數(shù)據(jù)更改請求,更改本地緩存中的數(shù)據(jù)。
可選的,所述方法還包括:
將更改后的數(shù)據(jù)發(fā)送給所述持久化數(shù)據(jù)庫,并向其他后端服務(wù)器發(fā)送更改數(shù)據(jù)的標識信息,以使其他后端服務(wù)器根據(jù)所述標識信息從持久化數(shù)據(jù)庫獲得與所述標識信息對應(yīng)的數(shù)據(jù),根據(jù)獲得的數(shù)據(jù)更新本地緩存。
可選的,所述數(shù)據(jù)更改請求為以下請求中的一種或幾種組合:
數(shù)據(jù)修改請求、數(shù)據(jù)添加請求、數(shù)據(jù)刪除請求、數(shù)據(jù)合并請求。
可選的,所述后端服務(wù)器為:
所述前端服務(wù)器根據(jù)所述數(shù)據(jù)請求,利用一致性哈希算法計算出的哈希值對應(yīng)的服務(wù)器。
為達到上述目的,本發(fā)明實施例還提供了一種緩存更新裝置,應(yīng)用于后端服務(wù)器,所述裝置包括:檢測模塊、查找模塊和更新模塊,其中,
所述檢測模塊,用于針對前端服務(wù)器發(fā)送的數(shù)據(jù)請求進行檢測;
所述查找模塊,用于當(dāng)所述檢測模塊檢測到所述數(shù)據(jù)請求為數(shù)據(jù)查找請求時,在本地緩存中查找與所述數(shù)據(jù)請求對應(yīng)的數(shù)據(jù);
所述更新模塊,用于在所述查找模塊未查找到與所述數(shù)據(jù)請求對應(yīng)的數(shù)據(jù)的情況下,從持久化數(shù)據(jù)庫獲得所述數(shù)據(jù),并根據(jù)所述數(shù)據(jù)更新本地緩存。
可選的,所述裝置還包括更改模塊,用于當(dāng)所述檢測模塊檢測到所述數(shù)據(jù)請求為數(shù)據(jù)更改請求時,根據(jù)所述數(shù)據(jù)更改請求,更改本地緩存中的數(shù)據(jù)。
可選的,所述裝置還包括發(fā)送模塊,用于將更改后的數(shù)據(jù)發(fā)送給所述持久化數(shù)據(jù)庫,并向其他后端服務(wù)器發(fā)送更改數(shù)據(jù)的標識信息,以使其他后端服務(wù)器根據(jù)所述標識信息從持久化數(shù)據(jù)庫獲得與所述標識信息對應(yīng)的數(shù)據(jù),根據(jù)獲得的數(shù)據(jù)更新本地緩存。
可選的,所述數(shù)據(jù)更改請求為以下請求中的一種或幾種組合:
數(shù)據(jù)修改請求、數(shù)據(jù)添加請求、數(shù)據(jù)刪除請求、數(shù)據(jù)合并請求。
可選的,其特征在于,所述后端服務(wù)器為:
所述前端服務(wù)器根據(jù)所述數(shù)據(jù)請求,利用一致性哈希算法計算出的哈希值對應(yīng)的服務(wù)器。
本發(fā)明實施例提供的一種緩存更新方法及裝置,應(yīng)用于后端服務(wù)器,所述方法包括:針對前端服務(wù)器發(fā)送的數(shù)據(jù)請求進行檢測;當(dāng)檢測到所述數(shù)據(jù)請求為數(shù)據(jù)查找請求時,在本地緩存中查找與所述數(shù)據(jù)請求對應(yīng)的數(shù)據(jù);如果未查找到,從持久化數(shù)據(jù)庫獲得所述數(shù)據(jù),并根據(jù)所述數(shù)據(jù)更新本地緩存。
應(yīng)用本發(fā)明實施例,后端服務(wù)器將與用戶請求對應(yīng)的數(shù)據(jù)更新到本地緩存中,在下一次處理相同用戶請求時,直接從本地緩存中讀取數(shù)據(jù),無需通過網(wǎng)絡(luò)連接從分布式緩存中獲得數(shù)據(jù);相對于現(xiàn)有技術(shù)中后端服務(wù)器每次處理用戶請求時,都要通過網(wǎng)絡(luò)連接到分布式緩存中讀取數(shù)據(jù),避免了網(wǎng)絡(luò)延時和網(wǎng)絡(luò)抖動對數(shù)據(jù)傳輸?shù)挠绊?,進而提高了后端服務(wù)器的吞吐量。
當(dāng)然,實施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時達到以上所述的所有優(yōu)點。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的第一種緩存更新方法的流程示意圖;
圖2為本發(fā)明實施例提供的第二種緩存更新方法的流程示意圖;
圖3為本發(fā)明實施例提供的第三種緩存更新方法的流程示意圖;
圖4為本發(fā)明實施例提供的第一種緩存更新裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的第二種緩存更新裝置的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實施例提供的第三種緩存更新裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為解決現(xiàn)有技術(shù)問題,本發(fā)明實施例提供的一種緩存更新方法及裝置。下面首先就本發(fā)明實施例提供的一種緩存更新方法進行介紹。
需要說明的是,本發(fā)明實施例提供的一種緩存更新方法及裝置,優(yōu)選適用于后端服務(wù)器,其中,該后端服務(wù)器為前端服務(wù)器根據(jù)數(shù)據(jù)請求,利用一致性哈希算法計算出的哈希值對應(yīng)的服務(wù)器。
具體的,在實際應(yīng)用中,每一哈希值唯一對應(yīng)一后端服務(wù)器。
需要說明的是,根據(jù)數(shù)據(jù)請求,利用一致性哈希算法計算哈希值為現(xiàn)有技術(shù),本發(fā)明實施例在此不對其進行贅述。
圖1為本發(fā)明實施例提供的第一種緩存更新方法的流程示意圖,可以包括:
S101:針對前端服務(wù)器發(fā)送的數(shù)據(jù)請求進行檢測,當(dāng)檢測到所述數(shù)據(jù)請求為數(shù)據(jù)查找請求時,執(zhí)行S102。
S102:在本地緩存中查找與所述數(shù)據(jù)請求對應(yīng)的數(shù)據(jù),如果未查找到,執(zhí)行S103。
具體的,后端服務(wù)器B在本地緩存中查找與數(shù)據(jù)查找請求對應(yīng)的數(shù)據(jù)。若查找到數(shù)據(jù)X,后端服務(wù)器將數(shù)據(jù)X發(fā)送給前端服務(wù)器A。
假設(shè)后端服務(wù)器B在本地緩存中未查找到數(shù)據(jù)X,執(zhí)行S103。
S103:從持久化數(shù)據(jù)庫獲得所述數(shù)據(jù),并根據(jù)所述數(shù)據(jù)更新本地緩存。
示例性的,假設(shè)前端服務(wù)器A利用一致性哈希算法,根據(jù)數(shù)據(jù)請求的關(guān)鍵字確定出一個哈希值,該哈希值與后端服務(wù)器B是對應(yīng)的,則前端服務(wù)器A向后端服務(wù)器B發(fā)送數(shù)據(jù)請求,后端服務(wù)器B對接收的數(shù)據(jù)請求進行檢測,當(dāng)檢測到數(shù)據(jù)請求為數(shù)據(jù)查找請求(假設(shè)查找的數(shù)據(jù)為數(shù)據(jù)X)時,后端服務(wù)器B在本地緩存中查找數(shù)據(jù)X。若查找到數(shù)據(jù)X,將數(shù)據(jù)X發(fā)送給前端服務(wù)器A。若未查找到數(shù)據(jù)X,則從持久化數(shù)據(jù)庫獲得數(shù)據(jù)X,并根據(jù)數(shù)據(jù)X更新本地緩存。具體的,從持久化數(shù)據(jù)庫獲得數(shù)據(jù)X,可以向持久化數(shù)據(jù)庫發(fā)送包含數(shù)據(jù)X的標識信息的獲得請求,持久化數(shù)據(jù)庫根據(jù)標識信息進行數(shù)據(jù)查找,將查找的數(shù)據(jù)發(fā)送給后端服務(wù)器B,此時后端服務(wù)器B接收的數(shù)據(jù)即為數(shù)據(jù)X。
其中,持久化數(shù)據(jù)庫是可以長期存儲數(shù)據(jù)的數(shù)據(jù)庫,常用的持久化數(shù)據(jù)庫有Oracle數(shù)據(jù)庫或者DB2數(shù)據(jù)庫。
在實際應(yīng)用中,數(shù)據(jù)請求的關(guān)鍵字應(yīng)當(dāng)選用可以唯一標識數(shù)據(jù)請求和分散的字段,以使數(shù)據(jù)請求的分發(fā)盡量均衡。一致性哈希算法可以保證同樣的數(shù)據(jù)請求被哈希到同一臺后端服務(wù)器,可以提高后端服務(wù)器的本地緩存中數(shù)據(jù)的利用率和命中率。另外,一致性哈希也提高了后端服務(wù)器系統(tǒng)的穩(wěn)定性,當(dāng)后端服務(wù)器出現(xiàn)故障或者后端服務(wù)器擴容時,只會影響到相鄰兩臺服務(wù)器的命中率,其他服務(wù)器的命中率不受影響。
在實際應(yīng)用中,后端服務(wù)器B與持久化數(shù)據(jù)庫之間可以通過Socket連接進行數(shù)據(jù)的交互。
應(yīng)用本發(fā)明圖1所示實施例,后端服務(wù)器將與用戶請求對應(yīng)的數(shù)據(jù)更新到本地緩存中,在下一次處理相同用戶請求時,直接從本地緩存中讀取數(shù)據(jù),無需通過網(wǎng)絡(luò)連接從分布式緩存中獲得數(shù)據(jù);相對于現(xiàn)有技術(shù)中后端服務(wù)器每次處理用戶請求時,都要通過網(wǎng)絡(luò)連接到分布式緩存中讀取數(shù)據(jù),避免了網(wǎng)絡(luò)延時和網(wǎng)絡(luò)抖動對數(shù)據(jù)傳輸?shù)挠绊?,進而提高了后端服務(wù)器的吞吐量。
圖2為本發(fā)明實施例提供的第二種緩存更新方法的流程示意圖。當(dāng)檢測到所述數(shù)據(jù)請求為數(shù)據(jù)更改請求時,本發(fā)明圖2所示實施例在圖1所示實施例的基礎(chǔ)上增加了S104:根據(jù)所述數(shù)據(jù)更改請求,更改本地緩存中的數(shù)據(jù)。
需要說明的是,數(shù)據(jù)更改請求為數(shù)據(jù)修改請求、數(shù)據(jù)添加請求、數(shù)據(jù)刪除請求、數(shù)據(jù)合并請求中的一種或幾種組合。
示例性的,當(dāng)后端服務(wù)器B對接收的數(shù)據(jù)請求進行檢測,當(dāng)檢測到數(shù)據(jù)請求為數(shù)據(jù)修改請求(假設(shè)需要修改的數(shù)據(jù)為數(shù)據(jù)X)時,則根據(jù)數(shù)據(jù)修改請求對本地緩存中的數(shù)據(jù)X進行修改,其中,數(shù)據(jù)修改請求中包括如何對數(shù)據(jù)X進行修改或數(shù)據(jù)X修改后的內(nèi)容。
當(dāng)后端服務(wù)器B對接收的數(shù)據(jù)請求進行檢測,當(dāng)檢測到數(shù)據(jù)請求為數(shù)據(jù)添加請求(假設(shè)需要添加的數(shù)據(jù)為數(shù)據(jù)X)時,則將數(shù)據(jù)X添加到本地緩存中。
當(dāng)后端服務(wù)器B對接收的數(shù)據(jù)請求進行檢測,當(dāng)檢測到數(shù)據(jù)請求為數(shù)據(jù)刪除請求(假設(shè)需要刪除的數(shù)據(jù)為數(shù)據(jù)X)時,則將本地緩存中的數(shù)據(jù)X刪除。
當(dāng)后端服務(wù)器B對接收的數(shù)據(jù)請求進行檢測,當(dāng)檢測到數(shù)據(jù)請求為數(shù)據(jù)合并請求(假設(shè)需要合并的數(shù)據(jù)為數(shù)據(jù)X和數(shù)據(jù)Y)時,則將本地緩存中的數(shù)據(jù)X和數(shù)據(jù)Y合并。具體的,若后端服務(wù)器B的本地緩存中沒有數(shù)據(jù)X和/或數(shù)據(jù)Y,則后端服務(wù)器先從持久化數(shù)據(jù)庫獲得數(shù)據(jù)X和/或數(shù)據(jù)Y,將數(shù)據(jù)X和/或數(shù)據(jù)Y更新到后端服務(wù)器B的本地緩存中;再對本地緩存中的數(shù)據(jù)X和數(shù)據(jù)Y進行合并。
當(dāng)后端服務(wù)器B對接收的數(shù)據(jù)請求進行檢測,當(dāng)檢測到數(shù)據(jù)請求為數(shù)據(jù)添加和刪除請求(假設(shè)需要添加的數(shù)據(jù)為數(shù)據(jù)X,需要刪除的數(shù)據(jù)為數(shù)據(jù)Y)時,則將數(shù)據(jù)X添加到本地緩存中,將將本地緩存中的數(shù)據(jù)Y刪除。
當(dāng)后端服務(wù)器B對接收的數(shù)據(jù)請求進行檢測,當(dāng)檢測到數(shù)據(jù)請求為數(shù)據(jù)添加、刪除和合并請求(假設(shè)需要添加的數(shù)據(jù)為數(shù)據(jù)X,需要刪除的數(shù)據(jù)為數(shù)據(jù)Y,需要合并的數(shù)據(jù)為數(shù)據(jù)M和數(shù)據(jù)N)時,則將數(shù)據(jù)X添加到本地緩存中,將將本地緩存中的數(shù)據(jù)Y刪除,將本地緩存中的數(shù)據(jù)M和數(shù)據(jù)N合并。
應(yīng)用本發(fā)明圖2所示實施例,后端服務(wù)器還能夠響應(yīng)數(shù)據(jù)更改請求,進而提高用戶訪問數(shù)據(jù)的命中率,提高反饋數(shù)據(jù)的速度和準確性。
圖3為本發(fā)明實施例提供的第三種緩存更新方法的流程示意圖。本發(fā)明圖3所示實施例在圖2所示實施例的基礎(chǔ)上,增加了S105:將更改后的數(shù)據(jù)發(fā)送給所述持久化數(shù)據(jù)庫,并向其他后端服務(wù)器發(fā)送更改數(shù)據(jù)的標識信息,以使其他后端服務(wù)器根據(jù)所述標識信息從持久化數(shù)據(jù)庫獲得與所述標識信息對應(yīng)的數(shù)據(jù),根據(jù)獲得的數(shù)據(jù)更新本地緩存。
具體的,針對數(shù)據(jù)的更改請求為數(shù)據(jù)的修改請求的情況,假設(shè)修改前數(shù)據(jù)的標識信息為X,修改后數(shù)據(jù)的標識信息為X′,后端服務(wù)器B把修改后的數(shù)據(jù)及發(fā)送給持久化數(shù)據(jù)庫。持久化數(shù)據(jù)庫根據(jù)數(shù)據(jù)X的標識信息,將修改后的數(shù)據(jù)替換自身存儲的數(shù)據(jù)X。后端服務(wù)器向其他后端服務(wù)器發(fā)送標識信息X′和標識信息X,其他后端服務(wù)器根據(jù)標識信息X′向持久化數(shù)據(jù)庫獲得修改后的數(shù)據(jù),并將修改后的數(shù)據(jù)替換本地緩存中的標識信息為X的數(shù)據(jù)。
具體的,針對數(shù)據(jù)更改請求為數(shù)據(jù)添加請求的情況,后端服務(wù)器B將數(shù)據(jù)X的添加到本地緩存中,再將數(shù)據(jù)X發(fā)送給持久化數(shù)據(jù)庫,使持久化數(shù)據(jù)庫添加數(shù)據(jù)X。
具體的,針對數(shù)據(jù)的更改請求為數(shù)據(jù)合并請求的情況,后端服務(wù)器B將數(shù)據(jù)X和數(shù)據(jù)Y合并后的數(shù)據(jù)Z、數(shù)據(jù)X的標識信息和數(shù)據(jù)Y的標識信息發(fā)送給持久化數(shù)據(jù)庫,以使持久化數(shù)據(jù)庫將數(shù)據(jù)Z替換數(shù)據(jù)X和數(shù)據(jù)Y。后端服務(wù)器B將標識信息X、標識信息Y和數(shù)據(jù)Z的標識信息發(fā)送給其他后端服務(wù)器。其他后端服務(wù)器根據(jù)數(shù)據(jù)Z的標識信息更新從持久化數(shù)據(jù)庫獲得數(shù)據(jù)Z,將數(shù)據(jù)Z替換本地緩存中的數(shù)據(jù)X和數(shù)據(jù)Y。
具體的,針對數(shù)據(jù)的更改請求為數(shù)據(jù)添加、刪除和合并請求(假設(shè)需要添加的數(shù)據(jù)為數(shù)據(jù)X,需要刪除的數(shù)據(jù)為數(shù)據(jù)Y,需要合并的數(shù)據(jù)為數(shù)據(jù)M和數(shù)據(jù)N)時,則將數(shù)據(jù)M和數(shù)據(jù)N合并后得到的數(shù)據(jù)P、數(shù)據(jù)M的標識信息和數(shù)據(jù)N的標識信息發(fā)送給持久化數(shù)據(jù)。持久化數(shù)據(jù)庫將數(shù)據(jù)P替換數(shù)據(jù)M和數(shù)據(jù)N。后端服務(wù)器B將數(shù)據(jù)P的標識信息數(shù)據(jù)M的標識信息和數(shù)據(jù)N的標識信息發(fā)送給其他后端服務(wù)器。其他后端服務(wù)器根據(jù)數(shù)據(jù)P的標識信息想吃就花數(shù)據(jù)庫獲得數(shù)據(jù)P,將數(shù)據(jù)P替換本地緩存中的數(shù)據(jù)M和數(shù)據(jù)N。
在實際應(yīng)用中,除后端服務(wù)器B之外的其他后端服務(wù)器,根據(jù)接收到的數(shù)據(jù)的標識信息在本地緩存中查找到與該標識信息對應(yīng)的數(shù)據(jù),并根據(jù)該標識信息從持久化數(shù)據(jù)庫獲得數(shù)據(jù)已更新本地緩存。
應(yīng)用本發(fā)明圖3所示實施例,保證了所有后端服務(wù)器對于同一數(shù)據(jù)的一致性,避免了后端服務(wù)器對于同一數(shù)據(jù)不一致導(dǎo)致的情況出現(xiàn)。
與上述的方法實施例相對應(yīng),本發(fā)明實施例還提供一種緩存更新裝置。
圖4為本發(fā)明實施例提供的第一種緩存更新裝置的結(jié)構(gòu)示意圖,所述裝置包括:檢測模塊401、查找模塊402和更新模塊403,其中,
檢測模塊401,用于針對前端服務(wù)器發(fā)送的數(shù)據(jù)請求進行檢測。
查找模塊402,用于當(dāng)所述檢測模塊401檢測到所述數(shù)據(jù)請求為數(shù)據(jù)查找請求時,在本地緩存中查找與所述數(shù)據(jù)請求對應(yīng)的數(shù)據(jù)。
更新模塊403,用于在所述查找模塊402未查找到與所述數(shù)據(jù)請求對應(yīng)的數(shù)據(jù)的情況下,從持久化數(shù)據(jù)庫獲得所述數(shù)據(jù),并根據(jù)所述數(shù)據(jù)更新本地緩存。
需要說明的是,所述后端服務(wù)器為:
所述前端服務(wù)器根據(jù)所述數(shù)據(jù)請求,利用一致性哈希算法計算出的哈希值對應(yīng)的服務(wù)器。
應(yīng)用本發(fā)明圖4所示實施例,后端服務(wù)器將與用戶請求對應(yīng)的數(shù)據(jù)更新到本地緩存中,在下一次處理相同用戶請求時,直接從本地緩存中讀取數(shù)據(jù),無需通過網(wǎng)絡(luò)連接從分布式緩存中獲得數(shù)據(jù);相對于現(xiàn)有技術(shù)中后端服務(wù)器每次處理用戶請求時,都要通過網(wǎng)絡(luò)連接到分布式緩存中讀取數(shù)據(jù),避免了網(wǎng)絡(luò)延時和網(wǎng)絡(luò)抖動對數(shù)據(jù)傳輸?shù)挠绊?,進而提高了后端服務(wù)器的吞吐量。
圖5為本發(fā)明實施例提供的第二種緩存更新裝置的結(jié)構(gòu)示意圖。圖5所示實施例在圖4所示實施例的基礎(chǔ)上增加了更改模塊404,用于當(dāng)所述檢測模塊402檢測到所述數(shù)據(jù)請求為數(shù)據(jù)更改請求時,根據(jù)所述數(shù)據(jù)更改請求,更改本地緩存中的數(shù)據(jù)。
在實際應(yīng)用中,所述數(shù)據(jù)更改請求為以下請求中的一種或幾種組合:
數(shù)據(jù)修改請求、數(shù)據(jù)添加請求、數(shù)據(jù)刪除請求、數(shù)據(jù)合并請求。
應(yīng)用本發(fā)明圖5所示實施例,后端服務(wù)器還能夠響應(yīng)數(shù)據(jù)更改請求,進而提高用戶訪問數(shù)據(jù)的命中率,提高反饋數(shù)據(jù)的速度和準確性。
圖6為本發(fā)明實施例提供的第三種緩存更新裝置的結(jié)構(gòu)示意圖。圖6所示實施例在圖5所示實施例的基礎(chǔ)上增加了發(fā)送模塊405,用于將更改后的數(shù)據(jù)發(fā)送給所述持久化數(shù)據(jù)庫,并向其他后端服務(wù)器發(fā)送更改數(shù)據(jù)的標識信息,以使其他后端服務(wù)器根據(jù)所述標識信息從持久化數(shù)據(jù)庫獲得與所述標識信息對應(yīng)的數(shù)據(jù),根據(jù)獲得的數(shù)據(jù)更新本地緩存。
應(yīng)用本發(fā)明圖6所示實施例,保證了所有后端服務(wù)器對于同一數(shù)據(jù)的一致性,避免了后端服務(wù)器對于同一數(shù)據(jù)不一致導(dǎo)致的情況出現(xiàn)。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。