[發明專利]一種多級緩存的操作方法、裝置及電子設備在審
| 申請號: | 201610097163.5 | 申請日: | 2016-02-23 |
| 公開(公告)號: | CN107102896A | 公開(公告)日: | 2017-08-29 |
| 發明(設計)人: | 楊興華 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 北京市清華源律師事務所11441 | 代理人: | 沈泳,李贊堅 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 多級 緩存 操作方法 裝置 電子設備 | ||
技術領域
本申請涉及數據存儲技術領域,具體涉及一種多級緩存的操作方法、裝置及電子設備。本申請同時涉及一種緩存數據一致性的校驗方法、裝置及電子設備,一種堆內緩存的過載保護方法、裝置及電子設備,一種序列化方法、裝置及電子設備,一種反序列化方法、裝置及電子設備,以及一種多級緩存系統。
背景技術
在需要使用緩存的場景,即可以選擇使用本地緩存(即:單機緩存),也可以選擇使用分布式緩存。下面分別對各種緩存方案及其優劣勢進行說明。
1)本地緩存
本地緩存的優勢在于訪問延時非常低,堆內緩存無需序列化,其劣勢在于本地緩存容量非常小,命中率很低,而且極易造成不同機器之間緩存數據的不一致性。
對于Java的本地緩存,由于緩存數據保存位置的不同,存在著堆內緩存以及堆外緩存兩種緩存方案。堆內緩存將數據保存在了Java堆內,其優勢在于緩存數據無需進行序列化,耗費CPU最少同時獲取數據的延時也最低,其劣勢是會影響到Java的GC過程,隨著緩存數據量的增大,Java GC耗費時間也會增大,Java GC反過來會影響堆內緩存的性能,從而Java GC限制了堆內緩存的緩存空間大小。堆外緩存的優勢是逃離了Java GC,從而可以持有更大的緩存空間,而其劣勢在于需要將數據序列化后才能保存,需要耗費一定的CPU。
2)分布式緩存
分布式緩存的優勢在于容量非常大,由于所有機器都訪問同一個緩存,所以不會存在不同機器得到的緩存數據不一致的問題,其劣勢在于每次訪問緩存都要發起網絡請求,因此存在一定的網絡延時以及序列化開銷。
綜上所述,各種緩存方案均具有各自的優勢和劣勢。當前,對于大部分需要多機部署的應用,限于單機緩存的容量限制、Java GC(Garbage Collection,垃圾收集)機制的影響以及一致性校驗難題,一般會單獨使用分布式緩存,這種架 構相對簡單,但也不可避免的需要承擔分布式緩存所帶來的劣勢。
為了能夠兼顧各種緩存方案的優勢,某些對訪問延時要求苛刻的系統會選擇同時使用單機緩存和分布式緩存,即:采用多級(分級)緩存方案。然而,由于各級緩存在代碼架構上是分離的,并沒有對外暴露出單一的緩存操作接口,因而,開發人員在使用緩存時需要同時調用不同緩存對應的不同接口,從而增加了代碼的復雜度。
因此,在同時使用多種緩存方案時,現有技術存在無法通過統一的緩存操作接口操作各種緩存的問題。
發明內容
本申請提供一種多級緩存的操作方法、裝置及電子設備,以解決現有技術存在無法通過統一的緩存操作接口操作各種緩存的問題。本申請另外提供一種緩存數據一致性的校驗方法、裝置及電子設備,一種堆內緩存的過載保護方法、裝置及電子設備,一種序列化方法、裝置及電子設備,一種反序列化方法、裝置及電子設備,以及一種多級緩存系統。
本申請提供一種多級緩存的操作方法,所述多級緩存包括本地緩存和分布式緩存,包括:
通過特定操作的統一緩存API接收對應所述多級緩存的所述特定操作的調用指令;所述特定操作的統一緩存API封裝了對所述本地緩存的特定操作和對所述分布式緩存的特定操作;
所述特定操作的統一緩存API調用所述特定操作的各級緩存API,通過所述特定操作的各級緩存API,對所述多級緩存進行所述特定操作;所述各級緩存API包括本地緩存API和分布式緩存API;
其中,所述特定操作包括寫緩存、讀緩存、刪除緩存或清空緩存。
可選的,所述特定操作包括所述寫緩存;所述調用指令包括待緩存數據及其數據標識;
所述對所述多級緩存進行所述特定操作,采用如下方式:
所述寫緩存的統一緩存API調用所述寫緩存的各級緩存API,通過所述寫緩存的各級緩存API,將所述數據標識與所述待緩存數據的對應記錄寫入所述多級 緩存。
可選的,所述將所述數據標識與所述待緩存數據的對應記錄寫入所述多級緩存,包括:
所述寫緩存的統一緩存API調用所述寫緩存的本地緩存API,通過所述寫緩存的本地緩存API,將所述對應記錄寫入所述本地緩存;
所述寫緩存的統一緩存API調用所述寫緩存的分布式緩存API,通過所述寫緩存的分布式緩存API,將所述對應記錄寫入所述分布式緩存。
可選的,所述待緩存數據的數據類型包括對象類型,在所述將所述對應記錄寫入所述分布式緩存之前,還包括:
對所述待緩存數據進行序列化,生成所述待緩存數據的序列化數據;
所述將所述對應記錄寫入所述分布式緩存,采用如下方式:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610097163.5/2.html,轉載請聲明來源鉆瓜專利網。





