通用數據緩存設計方案

隨着redis等內存數據庫的流行,大多數應用及系統均開始採用redis集羣作爲系統的緩存方案,用來減少數據庫的壓力,增加應用併發及響應速度。前端頁面的緩存暫不做探討,主要是針對後端服務的數據緩存。


數據緩存的分類及特點

常規涉及的數據緩存大致可以從以下三個方面進行分類:生命週期、時效性、複雜度;



數據緩存根據生命週期分類主要分爲:長期、中期、短期三類,主要作用及特點如下:



數據緩存根據時效性主要分爲異步、同步(即實時)兩大類,在作用上需要根據實際的業務場景進行劃分,在數據同步實現上存在較大的差異;



數據緩存根據複雜度主要分爲對象實體、組合對象等兩大類,主要特點如下:



實現難點

涉及的大量業務數據緩存屬於有實時要求的組合對象,由於組合對象是多個對象通過一定邏輯處理後得到的組合,一旦修改組合中的任一對象,都需要重建組合對象的數據緩存,數據同步實現非常困難;



解決方案:簡單對象數據緩存

根據業務簡單對象實體大致存在以下分類的數據緩存處理場景:



解決方案:組合對象數據緩存

組合對象處理非常複雜,可以採用業務單位爲基礎展開,以該業務單位更新對象實體讓組合對象失效的方式實現:



以上兩種只是針對數據緩存方案的其中一種可行性探討,通過這種方式,可以實現系統級通過緩存的框架。當然,其中需要考慮到緩存的命中率、命中頻次等因素,對於命中較低的不推薦使用緩存,建議採用其他方式解決;對於部分實時性要求不高的業務場景,還可以通過消息隊列等方式採用異步的方式更新數據緩存等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章