論 業務系統 架構 的 簡化 (二) 用 關係資料庫 作 快取
通常, 分散式快取 是 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 操作 來 同步協作 。