1:前言
我們在開發系統的過程中,快取是個有用的模組。下面我就把我們的快取模組給大家做個簡單介紹。
2:類圖
看不清楚?這裡檢視原圖(大圖)。
3:簡單介紹
快取分為兩個部分。乙個是快取結構乙個是儲存結構。快取結構主要解決物件什麼時候過期而儲存結構主要解決物件儲存到什麼地方。
3.1快取結構
我們在處理快取過期這個功能的時候提供了兩種過期時間。一種是絕對過期一種是相對過期。所謂絕對過期指的是到了時間點該物件就從快取中移除,而相對過期則指的是只要在一段時間內有訪問物件則該物件永不過期(如果一段時間內沒有訪問物件則過期)。
對於如何確定快取過期我們使用了個守護執行緒。通過後台執行緒在檢測快取的過期。
待改進的地方:快取沒有實現一些像fifo,lfu,lru等演算法,因為這和快取命中率相關,而命中率計算需要鎖定整個快取列表效率不高。所以當前沒有實現。
3.2儲存結構
當前實現的儲存結構有兩種一種是記憶體一種是磁碟。對資料庫的擴充套件還沒有進行。其實無論那種儲存介質都無外乎三個元素首先就是鍵其次就是路徑(對於磁碟就是檔案路徑對於資料庫就是那個資料庫的那個表中的字段而對於記憶體則是指那塊記憶體的那個索引)最後就是值。處理好三者的關係,儲存結構就沒有什麼難的了。
3.3快取結構和儲存結構對接
快取結構持有儲存結構的介面。在建構函式中通過配置檔案例項化儲存提供者。快取結構主要解決快取過期的問題,對於儲存,更新,以及刪除物件則是呼叫儲存結構的方法來實現的。
3.4快取集群
分布式的初衷就是利用其他計算機的磁碟或是cpu來完成工作,而對於分布式存貯則是利用其他計算機的磁碟來擴大儲存容量提高訪問速度。資料的一致性就是個問題,我們的專案對於這個功能的實現是借鑑了乙個開源的專案: v.1.5】
架構設計之分布式快取
1 前言 我們在開發系統的過程中,快取是個有用的模組。下面我就把我們的快取模組給大家做個簡單介紹。2 類圖 3 簡單介紹 快取分為兩個部分。乙個是快取結構乙個是儲存結構。快取結構主要解決物件什麼時候過期而儲存結構主要解決物件儲存到什麼地方。3.1快取結構 我們在處理快取過期這個功能的時候提供了兩種過...
架構設計之分布式資料訪問
1 前言 看到這個題目也許有的朋友會問對資料訪問層擴充套件為分布式有沒有意義,因為不管怎樣到最後都是對資料庫進行訪問,瓶頸在資料庫上。對於這個問題我的答案是 我們提供分布式的查詢能力然後和快取結合讓資料庫中的資料快取起來 解決這個問題後我們來進入正題,如何對資料訪問層進行封裝。其實資料訪問層的方法我...
高可用架構之分布式快取
為什麼需要快取?加速請求響應時間,響應延遲小 減少對固化儲存的讀壓力 快取適用場合 靜態資源的快取 較少更改資源的快取 讀多寫少場景 不適合場景 頻繁更新 讀少寫多 高可用架構使用的快取型別有哪些?各自作用是什麼?本地快取 靜態不變的資料 減少網路i o互動 程序內快取 和程序相關的動態資料 動態變...