1. 程式人生 > >論 業務系統 架構 的 簡化 (二) 用 關係資料庫 作 快取

論 業務系統 架構 的 簡化 (二) 用 關係資料庫 作 快取

通常, 分散式快取 是 NoSql 資料庫, 比如 Redis  。

 

但 實際上 我們 可以用 關係資料庫 來 作 快取  。

比如 常用的 商品列表 等, 可以用 關係資料庫 來作 快取, 查詢 排序 維護 都很方便 。

這種情況 其實 就是 在 主資料庫 外 再建一個 資料庫 用於 查詢, 

通過 Job 定時 同步 主資料庫 的 資料 到 這個 “快取”資料庫 就可以 。

 

根據需要, 我們可以在 主資料庫 外 建立 多個 “快取”資料庫, 也可以 稱為 外圍資料庫, 周圍資料庫, 衛星資料庫  。

通過 Job 定時 同步資料 到 這些 衛星資料庫  。

 

這樣的架構,  井然有序 。

 

在 大環境 上, 硬體技術 和 關係資料庫技術 在 近幾年 取得了 長足 的 進步,  並且這一趨勢在未來還將延續 。

可以看看這篇文章   《CAP, BASE, 最終一致性和五分鐘原則》    https://blog.csdn.net/u013613428/article/details/55259924

裡面提到  “記憶體是硬碟,  硬碟是磁帶”  。

 

分散式快取 , 比如 Redis ,  可以作為 叢集 的 共享記憶體,  Server 們 通過 Redis 來 共享資料, 通訊, 同步協作 。

Redis 提供的一些資料型別還是 頗具價值 的,  比如 佇列 Queue,  以及 Block Pop 等 Block 操作 。

可以用於 Server 間   共享資料, 通訊, 同步協作  。

Server 間 的 共享資料, 通訊, 同步協作   和   執行緒間 的   共享資料, 通訊, 同步協作  是 類似的 ,

執行緒間 通過 記憶體 來 共享資料, 通過 Lock 來 同步協作,

Server 間 則 利用 Redis 這樣的 分散式快取 作為 共享記憶體, 利用 Redis 提供的 Lock ,  或者 Block 操作 來 同步協作 。