本發(fā)明涉及計算機技術領域,具體而言,本發(fā)明涉及一種緩存數據的更新方法,及一種緩存數據的更新裝置。
背景技術:
隨著計算機技術的不斷發(fā)展,人們的生活越來越依賴于各種應用程序,隨之也將產生越來越多的數據訪問操作,當數據訪問量較大的時候,為了提高數據訪問的速度,一些大型的、需要頻繁訪問數據庫的網站通常采用分布式的高速緩存系統(tǒng)。
現有技術中,分布式的高速緩存系統(tǒng)的工作流程為:在接收到請求數據時,首先檢查請求數據是否在內存緩存中,若是,直接把請求數據返回給相應的請求方,不再對數據庫進行任何操作;如果請求的數據不在內存緩存中,則到數據庫中查找請求的數據,在數據庫中查找到請求的數據后,從數據庫中獲取該數據,并將從數據庫中獲取的數據返回給相應的請求方,同時將數據緩存一份到內存中。然而,當數據庫中的數據發(fā)生更新時,若內存中緩存有原數據,則當有對應的請求時,獲取的仍然是內存中緩存的原數據而非更新后的新數據,從而無法保證數據的一致性。
技術實現要素:
為克服上述技術問題或者至少部分地解決上述技術問題,特提出以下技術方案:
本發(fā)明的實施例提出了一種緩存數據的更新方法,應用于包括數據庫與緩存區(qū)域的數據庫系統(tǒng)中,該方法包括:
監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程;
通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據;
接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中。
優(yōu)選地,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程,包括:
當監(jiān)測到第一數據發(fā)生更新操作時,獲取針對第一數據的更新反饋信息;
根據更新反饋信息,判斷第一數據是否更新成功;
若是,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程。
優(yōu)選地,通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據,包括:
根據數據庫中發(fā)生更新操作的第一數據的標識信息,查找緩存區(qū)域中與第一數據相應的緩存數據;
通過進程刪除緩存區(qū)域中與第一數據相應的緩存數據。
優(yōu)選地,通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據,包括:
接收到運行進程的命令后,暫停運行進程;
在預定暫停時長后,運行進程,并通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據。
優(yōu)選地,接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中,包括:
依據第一數據的標識信息,判斷緩存區(qū)域中是否緩存有與第一數據對應的緩存數據;
若判斷得到緩存區(qū)域中未緩存與第一數據對應的緩存數據,則從數據庫查找相應的更新后的第一數據,并將查找到的更新后的第一數據存儲至緩存區(qū)域中。
可選地,緩存區(qū)域中緩存數據具有預定的過期時間周期,該方法還包括:
根據預定的過期時間周期,判斷緩存區(qū)域中的緩存數據是否過期;
當判斷緩存數據過期時,刪除已過期的緩存數據。
本發(fā)明的另一實施例提出了一種緩存數據的更新裝置,應用于包括數據庫與緩存區(qū)域的數據庫系統(tǒng)中,該裝置包括:
監(jiān)測及創(chuàng)建模塊,用于監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程;
第一刪除模塊,用于通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據;
更新模塊,用于接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中。
優(yōu)選地,監(jiān)測及創(chuàng)建模塊包括:
獲取單元,用于當監(jiān)測到第一數據發(fā)生更新操作時,獲取針對第一數據的更新反饋信息;
第一判斷單元,用于根據更新反饋信息,判斷第一數據是否更新成功;
創(chuàng)建單元,用于若判斷第一數據更新成功時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程。
優(yōu)選地,第一刪除模塊包括:
查找單元,用于根據數據庫中發(fā)生更新操作的第一數據的標識信息,查找緩存區(qū)域中與第一數據相應的緩存數據;
刪除單元,用于通過進程刪除緩存區(qū)域中與第一數據相應的緩存數據。
優(yōu)選地,第一刪除模塊包括:
暫停單元,用于接收到運行進程的命令后,暫停運行進程;
運行及刪除單元,用于在預定暫停時長后,運行進程,并通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據。
優(yōu)選地,更新模塊包括:
第二判斷單元,用于依據第一數據的標識信息,判斷緩存區(qū)域中是否緩存有與第一數據對應的緩存數據;
查找及更新單元,用于若判斷得到緩存區(qū)域中未緩存與第一數據對應的緩存數據,則從數據庫查找相應的更新后的第一數據,并將查找到的更新后的第一數據存儲至緩存區(qū)域中。
可選地,緩存區(qū)域中緩存數據具有預定的過期時間周期,該裝置還包括:
判斷模塊,用于根據預定的過期時間周期,判斷緩存區(qū)域中的緩存數據是否過期;
第二刪除模塊,用于當判斷緩存數據過期時,刪除已過期的緩存數據。
本發(fā)明的實施例中,提出了一種緩存數據的更新方案,監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程,通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據,避免了當數據庫中的數據發(fā)生更新時,緩存區(qū)域中緩存的對應數據為未更新的舊數據的情況,從而避免了用戶獲取到錯誤的數據;接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中,保證了數據庫中的數據與緩存區(qū)域中緩存的對應數據的一致性,從而保證了用戶可實時獲取到正確的數據;同時,當發(fā)生大量數據的更新時,可避免頻繁更新緩存區(qū)域中對應的緩存數據,降低了系統(tǒng)資源的消耗,提高數據的處理效率,并提升用戶的使用體驗。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為本發(fā)明中一個實施例的緩存數據的更新方法的流程示意圖;
圖2為本發(fā)明中另一實施例的緩存數據的更新裝置的結構示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
本技術領域技術人員可以理解,除非特意聲明,這里使用的單數形式“一”、“一個”、“所述”和“該”也可包括復數形式。應該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數、步驟、操作、元件、組件和/或它們的組。應該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關聯的列出項的全部或任一單元和全部組合。
本技術領域技術人員可以理解,除非另外定義,這里使用的所有術語(包括技術術語和科學術語),具有與本發(fā)明所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語,應該被理解為具有與現有技術的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
圖1為本發(fā)明中一個實施例的緩存數據的更新方法的流程示意圖;
本發(fā)明的實施例中,各步驟所執(zhí)行的內容概述如下:
步驟S110:監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程;
步驟S120:通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據;
步驟S130:接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中。
本發(fā)明的實施例中,提出了一種緩存數據的更新方法,監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程,通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據,避免了當數據庫中的數據發(fā)生更新時,緩存區(qū)域中緩存的對應數據為未更新的舊數據的情況,從而避免了用戶獲取到錯誤的數據;接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中,保證了數據庫中的數據與緩存區(qū)域中緩存的對應數據的一致性,從而保證了用戶可實時獲取到正確的數據;同時,當發(fā)生大量數據的更新時,可避免頻繁更新緩存區(qū)域中對應的緩存數據,降低了系統(tǒng)資源的消耗,提高數據的處理效率,并提升用戶的使用體驗。以下針對各個步驟的具體實現做進一步的說明:
步驟S110:監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程。
具體地,監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域中的第一數據執(zhí)行對應更新操作的進程。
例如,監(jiān)測數據庫(Data Base,DB)中的數據的更新操作,當監(jiān)測到DB中的數據發(fā)生更新操作時,創(chuàng)建進程,如process,process用于對緩存區(qū)域執(zhí)行操作。
優(yōu)選地,步驟S110中當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程的步驟進一步包括步驟S111(圖中未示出)、步驟S112(圖中未示出)和步驟S113(圖中未示出):
步驟S111:當監(jiān)測到第一數據發(fā)生更新操作時,獲取針對第一數據的更新反饋信息;
步驟S112:根據更新反饋信息,判斷第一數據是否更新成功;
步驟S113:若是,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程。
例如,通過數據庫,如DB,中的觸發(fā)器機制監(jiān)測數據庫DB中的數據的更新操作,當監(jiān)測到DB中的數據A發(fā)生修改的更新操作時,獲取針對數據A的更新反饋信息,如“更新成功”,根據更新反饋信息“更新成功”,可判斷數據A更新成功,當判斷數據A更新成功后,創(chuàng)建進程process,process用于對緩存區(qū)域執(zhí)行操作。
需要說明的是,本領域技術人員可以了解到,監(jiān)測數據庫有不同的實現方式,本發(fā)明雖然會以特定的方式實現對數據庫的監(jiān)測,但并不對此進行限制。
步驟S120:通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據。
例如,監(jiān)測數據庫DB中的數據的更新操作,當監(jiān)測到DB中的數據A發(fā)生修改的更新操作時,創(chuàng)建進程process,隨后通過進程process刪除緩存區(qū)域中與數據庫DB中發(fā)生更新操作的數據A相應的緩存數據A’。
優(yōu)選地,步驟S120進一步包括步驟S121(圖中未示出)和步驟S122(圖中未示出):
步驟S121:根據數據庫中發(fā)生更新操作的第一數據的標識信息,查找緩存區(qū)域中與第一數據相應的緩存數據;
步驟S122:通過進程刪除緩存區(qū)域中與第一數據相應的緩存數據。
例如,監(jiān)測數據庫DB中的數據的更新操作,當監(jiān)測到DB中的數據A發(fā)生修改的更新操作時,創(chuàng)建進程process;隨后根據數據庫DB中發(fā)生更新操作的數據A的標識信息,如“ID=001”,在緩存區(qū)域,如MC1中,查找MC1中數據標識信息為“ID=001”的緩存數據A’;隨后,通過進程process刪除MC1中的緩存數據A’。
在另一優(yōu)選實施例中,步驟S120進一步包括步驟S123(圖中未示出)和步驟S124(圖中未示出):
步驟S123:接收到運行進程的命令后,暫停運行進程;
步驟S124:在預定暫停時長后,運行進程,并通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據。
例如,監(jiān)測數據庫DB中的數據的更新操作,當監(jiān)測到DB中的數據A發(fā)生修改的更新操作時,創(chuàng)建進程process,根據DB中數據A的標識信息“ID=001”查找到緩存區(qū)域MC1中數據標識信息為“ID=001”的緩存數據A’,隨后啟動運行進程process的命令,當MC1所在的服務器接收到運行進程process的命令后,暫停運行進程process,在預定暫停時長,如1秒后,再運行進程process,并通過進程process刪除MC1中的緩存數據A’。
通過本實施例,可以調度任何處理器的進程使用時間片,無論當前是否存在有使用處理器的進程,在預定暫停時長后都會放棄占用處理器的時間,因此處理器占用率較低,提高了處理器的處理效率;同時,可保證數據庫中第一數據更新操作執(zhí)行完成后再執(zhí)行進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據,保證了數據庫中的第一數據與緩存區(qū)域中相應的緩存數據的一致性,避免了因物理斷電或其它因素造成數據庫中第一數據更新操作未執(zhí)行完畢,而刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據的情況。
步驟S130:接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中。
具體地,接收到客戶端應用程序發(fā)送針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中。
優(yōu)選地,步驟S130進一步包括步驟S131(圖中未示出)和步驟S132(圖中未示出):
步驟S131:依據第一數據的標識信息,判斷緩存區(qū)域中是否緩存有與第一數據對應的緩存數據;
步驟S132:若判斷得到緩存區(qū)域中未緩存與第一數據對應的緩存數據,則從數據庫查找相應的更新后的第一數據,并將查找到的更新后的第一數據存儲至緩存區(qū)域中。
例如,接收到客戶端應用程序,如APP1,發(fā)送針對數據A的數據獲取請求時,依據數據A的標識信息“ID=001”,判斷緩存區(qū)域MC1中是否緩存有與數據A對應的標識信息為“ID=001”的緩存數據A’;當判斷得到MC1中未緩存與數據A對應的緩存數據A’,則從數據庫DB中查找標識信息為“ID=001”的更新后的數據A,并將更新后的數據A存儲至MC1中,隨后,MC1將對應的緩存數據A’發(fā)送至APP1。
在一優(yōu)選實施例中,緩存區(qū)域中緩存數據具有預定的過期時間周期,該方法還包括步驟S140(圖中未示出)和步驟S150(圖中未示出):
步驟S140根據預定的過期時間周期,判斷緩存區(qū)域中的緩存數據是否過期;
步驟S150:當判斷緩存數據過期時,刪除已過期的緩存數據。
例如,緩存區(qū)域MC1中緩存數據具有預定的過期時間周期,如5分鐘,在MC1中緩存數據的同時,添加緩存數據的時間戳信息,如在MC1中緩存數據A’的同時,添加緩存數據A’的時間戳信息“2016-07-20 12:00”,根據預定的檢查過期數據的方法,如每隔5分鐘判斷一次MC1中緩存的數據是否過期,如在“2016-07-20 12:01”時啟動檢查過期數據的操作,根據預定的過期時間周期5分鐘,可判斷MC1中的緩存數據A未過期;隨后在“2016-07-20 12:06”時啟動檢查過期數據的操作,根據預定的過期時間周期5分鐘以及緩存數據A’的時間戳信息“2016-07-20 12:00”,可判斷MC1中的緩存數據A’過期,隨后刪除已過期的緩存數據A’。
在一具體應用場景中,用戶在“2016-07-20 13:00:01”時,通過電商網站購買5件商品B,單件商品B的價格為100元人民幣,此時電商網站的折扣信息為5折,隨后用戶在電商網站中與該用戶對應的購物車頁面內選擇了兌換電商網站提供的抵用券,在“2016-07-20 13:00:10”時,用戶點擊“確認購買”按鈕,隨后電商網站的服務器接收到用戶的購買請求后,計算用戶可使用抵用券的額度大小等操作,計算完成確定抵用券的額度的時間為“2016-07-20 13:00:10.05”,同時電商網站在“2016-07-20 13:00:10.01”時將折扣信息由5折修改為7折,當監(jiān)測到數據庫DB1中的折扣信息數據discount發(fā)生更新操作時,隨后啟動運行進程process1的命令,當MC2所在的服務器接收到運行進程process1的命令后,暫停運行進程process1,在預定暫停時長,如3毫秒后,即在“2016-07-20 13:00:10.03”時再運行進程process1,并通過進程process1刪除MC2中與數據庫DB1中發(fā)生更新操作的折扣信息數據discount相應的緩存數據discount’,此時刪除的discount’值為“5折”;當計算完成確定抵用券的額度后,在“2016-07-20 13:00:10.05”時,依據DB1中discount的標識信息,如“ID=002”,判斷MC2中不存在標識信息為“ID=002”的緩存折扣信息數據discount’,則從數據庫DB1查找標識信息為“ID=002”的折扣信息數據discount,discount的值為7折,并將查找到的更新后的折扣信息數據discount存儲至MC2中,隨后,MC2將緩存數據discount’,此時discount’值為“7折”,發(fā)送至用戶登錄的電商網站,隨后顯示用戶確認訂單信息的頁面,該頁面中顯示用戶購買5件B商品金額為350元人民幣。
圖2為本發(fā)明中另一實施例的緩存數據的更新裝置的結構示意圖。
本發(fā)明的實施例中,各模塊所執(zhí)行的內容概述如下:
監(jiān)測及創(chuàng)建模塊210監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程;
第一刪除模塊220通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據;
更新模塊230接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中。
本發(fā)明的實施例中,提出了一種緩存數據的更新裝置,監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程,通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據,避免了當數據庫中的數據發(fā)生更新時,緩存區(qū)域中緩存的對應數據為未更新的舊數據的情況,從而避免了用戶獲取到錯誤的數據;接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中,保證了數據庫中的數據與緩存區(qū)域中緩存的對應數據的一致性,從而保證了用戶可實時獲取到正確的數據;同時,當發(fā)生大量數據的更新時,可避免頻繁更新緩存區(qū)域中對應的緩存數據,降低了系統(tǒng)資源的消耗,提高數據的處理效率,并提升用戶的使用體驗。以下針對各個模塊的具體實現做進一步的說明:
監(jiān)測及創(chuàng)建模塊210監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程。
具體地,監(jiān)測數據庫中的數據更新操作,當監(jiān)測到第一數據發(fā)生更新操作時,創(chuàng)建對緩存區(qū)域中的第一數據執(zhí)行對應更新操作的進程。
例如,監(jiān)測數據庫,如DB,中的數據的更新操作,當監(jiān)測到DB中的數據發(fā)生更新操作時,創(chuàng)建進程,如process,process用于對緩存區(qū)域執(zhí)行操作。
優(yōu)選地,監(jiān)測及創(chuàng)建模塊210進一步包括獲取單元(圖中未示出)、第一判斷單元(圖中未示出)和創(chuàng)建單元(圖中未示出):
獲取單元當監(jiān)測到第一數據發(fā)生更新操作時,獲取針對第一數據的更新反饋信息;
第一判斷單元根據更新反饋信息,判斷第一數據是否更新成功;
若判斷第一數據更新成功時,創(chuàng)建單元創(chuàng)建對緩存區(qū)域執(zhí)行操作的進程。
例如,通過數據庫,如DB,中的觸發(fā)器機制監(jiān)測數據庫DB中的數據的更新操作,當監(jiān)測到DB中的數據A發(fā)生修改的更新操作時,獲取針對數據A的更新反饋信息,如“更新成功”,根據更新反饋信息“更新成功”,可判斷數據A更新成功,當判斷數據A更新成功后,創(chuàng)建進程process,process用于對緩存區(qū)域執(zhí)行操作。
需要說明的是,本領域技術人員可以了解到,監(jiān)測數據庫有不同的實現方式,本發(fā)明雖然會以特定的方式實現對數據庫的監(jiān)測,但并不對此進行限制。
第一刪除模塊220通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據。
例如,監(jiān)測數據庫DB中的數據的更新操作,當監(jiān)測到DB中的數據A發(fā)生修改的更新操作時,創(chuàng)建進程process,隨后通過進程process刪除緩存區(qū)域中與數據庫DB中發(fā)生更新操作的數據A相應的緩存數據A’。
優(yōu)選地,第一刪除模塊220進一步包括查找單元(圖中未示出)和刪除單元(圖中未示出):
查找單元根據數據庫中發(fā)生更新操作的第一數據的標識信息,查找緩存區(qū)域中與第一數據相應的緩存數據;
刪除單元通過進程刪除緩存區(qū)域中與第一數據相應的緩存數據。
例如,監(jiān)測數據庫DB中的數據的更新操作,當監(jiān)測到DB中的數據A發(fā)生修改的更新操作時,創(chuàng)建進程process;隨后根據數據庫DB中發(fā)生更新操作的數據A的標識信息,如“ID=001”,在緩存區(qū)域,如MC1中,查找MC1中數據標識信息為“ID=001”的緩存數據A’;隨后,通過進程process刪除MC1中的緩存數據A’。
在另一優(yōu)選實施例中,第一刪除模塊220進一步包括暫停單元(圖中未示出)和運行及刪除單元(圖中未示出):
暫停單元接收到運行進程的命令后,暫停運行進程;
運行及刪除單元在預定暫停時長后,運行進程,并通過進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據。
例如,監(jiān)測數據庫DB中的數據的更新操作,當監(jiān)測到DB中的數據A發(fā)生修改的更新操作時,創(chuàng)建進程process,根據DB中數據A的標識信息“ID=001”查找到緩存區(qū)域MC1中數據標識信息為“ID=001”的緩存數據A’,隨后啟動運行進程process的命令,當MC1所在的服務器接收到運行進程process的命令后,暫停運行進程process,在預定暫停時長,如1秒后,再運行進程process,并通過進程process刪除MC1中的緩存數據A’。
通過本實施例,可以調度任何處理器的進程使用時間片,無論當前是否存在有使用處理器的進程,在預定暫停時長后都會放棄占用處理器的時間,因此處理器占用率較低,提高了處理器的處理效率;同時,可保證數據庫中第一數據更新操作執(zhí)行完成后再執(zhí)行進程刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據,保證了數據庫中的第一數據與緩存區(qū)域中相應的緩存數據的一致性,避免了因物理斷電或其它因素造成數據庫中第一數據更新操作未執(zhí)行完畢,而刪除緩存區(qū)域中與數據庫中發(fā)生更新操作的第一數據相應的緩存數據的情況。
更新模塊230接收到針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中。
具體地,接收到客戶端應用程序發(fā)送針對第一數據的數據獲取請求時,從數據庫查找到相應的更新后的第一數據,并將更新后的第一數據存儲至緩存區(qū)域中。
優(yōu)選地,更新模塊230進一步包括第二判斷單元(圖中未示出)和查找及更新單元(圖中未示出):
第二判斷單元依據第一數據的標識信息,判斷緩存區(qū)域中是否緩存有與第一數據對應的緩存數據;
查找及更新單元若判斷得到緩存區(qū)域中未緩存與第一數據對應的緩存數據,則從數據庫查找相應的更新后的第一數據,并將查找到的更新后的第一數據存儲至緩存區(qū)域中。
例如,接收到客戶端應用程序,如APP1,發(fā)送針對數據A的數據獲取請求時,依據數據A的標識信息“ID=001”,判斷緩存區(qū)域MC1中是否緩存有與數據A對應的標識信息為“ID=001”的緩存數據A’;當判斷得到MC1中未緩存與數據A對應的緩存數據A’,則從數據庫DB中查找標識信息為“ID=001”的更新后的數據A,并將更新后的數據A存儲至MC1中,隨后,MC1將對應的緩存數據A’發(fā)送至APP1。
在一優(yōu)選實施例中,緩存區(qū)域中緩存數據具有預定的過期時間周期,該裝置還包括判斷模塊(圖中未示出)和第二刪除模塊(圖中未示出):
判斷模塊根據預定的過期時間周期,判斷緩存區(qū)域中的緩存數據是否過期;
第二刪除模塊當判斷緩存數據過期時,刪除已過期的緩存數據。
例如,緩存區(qū)域MC1中緩存數據具有預定的過期時間周期,如5分鐘,在MC1中緩存數據的同時,添加緩存數據的時間戳信息,如在MC1中緩存數據A’的同時,添加緩存數據A’的時間戳信息“2016-07-20 12:00”,根據預定的檢查過期數據的方法,如每隔5分鐘判斷一次MC1中緩存的數據是否過期,如在“2016-07-20 12:01”時啟動檢查過期數據的操作,根據預定的過期時間周期5分鐘,可判斷MC1中的緩存數據A未過期;隨后在“2016-07-20 12:06”時啟動檢查過期數據的操作,根據預定的過期時間周期5分鐘以及緩存數據A’的時間戳信息“2016-07-20 12:00”,可判斷MC1中的緩存數據A’過期,隨后刪除已過期的緩存數據A’。
在一具體應用場景中,用戶在“2016-07-20 13:00:01”時,通過電商網站購買5件商品B,單件商品B的價格為100元人民幣,此時電商網站的折扣信息為5折,隨后用戶在電商網站中與該用戶對應的購物車頁面內選擇了兌換電商網站提供的抵用券,在“2016-07-20 13:00:10”時,用戶點擊“確認購買”按鈕,隨后電商網站的服務器接收到用戶的購買請求后,計算用戶可使用抵用券的額度大小等操作,計算完成確定抵用券的額度的時間為“2016-07-20 13:00:10.05”,同時電商網站在“2016-07-20 13:00:10.01”時將折扣信息由5折修改為7折,當監(jiān)測到數據庫DB1中的折扣信息數據discount發(fā)生更新操作時,隨后啟動運行進程process1的命令,當MC2所在的服務器接收到運行進程process1的命令后,暫停運行進程process1,在預定暫停時長,如3毫秒后,即在“2016-07-20 13:00:10.03”時再運行進程process1,并通過進程process1刪除MC2中與數據庫DB1中發(fā)生更新操作的折扣信息數據discount相應的緩存數據discount’,此時刪除的discount’值為“5折”;當計算完成確定抵用券的額度后,在“2016-07-20 13:00:10.05”時,依據DB1中discount的標識信息,如“ID=002”,判斷MC2中不存在標識信息為“ID=002”的緩存折扣信息數據discount’,則從數據庫DB1查找標識信息為“ID=002”的折扣信息數據discount,discount的值為7折,并將查找到的更新后的折扣信息數據discount存儲至MC2中,隨后,MC2將緩存數據discount’,此時discount’值為“7折”,發(fā)送至用戶登錄的電商網站,隨后顯示用戶確認訂單信息的頁面,該頁面中顯示用戶購買5件B商品金額為350元人民幣。
本技術領域技術人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項或多項的設備。這些設備可以為所需的目的而專門設計和制造,或者也可以包括通用計算機中的已知設備。這些設備具有存儲在其內的計算機程序,這些計算機程序選擇性地激活或重構。這樣的計算機程序可以被存儲在設備(例如,計算機)可讀介質中或者存儲在適于存儲電子指令并分別耦聯到總線的任何類型的介質中,所述計算機可讀介質包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、ROM(Read-Only Memory,只讀存儲器)、RAM(Random Access Memory,隨即存儲器)、EPROM(Erasable Programmable Read-Only Memory,可擦寫可編程只讀存儲器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質包括由設備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質。
本技術領域技術人員可以理解,可以用計算機程序指令來實現這些結構圖和/或框圖和/或流圖中的每個框以及這些結構圖和/或框圖和/或流圖中的框的組合。本技術領域技術人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業(yè)計算機或其他可編程數據處理方法的處理器來實現,從而通過計算機或其他可編程數據處理方法的處理器來執(zhí)行本發(fā)明公開的結構圖和/或框圖和/或流圖的框或多個框中指定的方案。
本技術領域技術人員可以理解,本發(fā)明中已經討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發(fā)明中已經討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現有技術中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅是本發(fā)明的部分實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。