1樓:
看應用場景是頻繁讀、頻繁寫、頻繁讀寫。
讀多的場景:記憶體、磁碟雙寫就可以。
寫多的場景就需要考慮寫入削峰,可入kafka佇列快取寫入、leveldb記憶體+磁碟的多層快取削峰等。
2樓:
目前的回答從方案上已經說的很全面了,說下我的看法,我比較傾向
@白楊 , @小碼農xyz 的傾向,
在我的業務經驗裡,如果我們需要做快取大部分的業務都不需要嚴格的強一致,如果需要強一致的話不妨直接去讀db來減少複雜性,只需要一些手段來保持最終一致性即可(打個比方最簡單的ttl)。
在快取更新上我比較喜歡用
雖然說並不完美,但是可以應對大部分的情況。
多說一些在不同的db上也可以有一些不同的變化,打個比方我現在在用的cosmos db
他有乙個功能
Change feed processor in Azure Cosmos DB
可以很好的用來重新整理快取
3樓:小碼農xyz
建議:讀請求先讀快取,未命中情況下再讀資料庫再set快取寫請求先快取再資料庫,快取使用delete而不是set延伸問題:
主從同步,主從同步存在同步未完成時讀從庫時存在髒資料,這個時候髒資料再set會導致後續請求get的都是髒資料,這裡我們可以在同步完成時通過工具訂閱從庫的binlog獲取完成時間再delete重新set(這裡的前提是讀從庫來更新快取)
小tpis:延伸問題講道理我是找不到好的解決方案,如果有希望分享
ORACLE資料庫高可用 HA 的實現有哪些方法?
如果必須用正版,沒多少錢,要求簡單切換或自動切換,用作業系統級別的HA,比如IBM小型機的powerHA,windows的故障切換群集,linux的cluster之類的。有錢,或者不是必須用正版,上RAC,效能得到提公升的同時,單伺服器故障無需切換。這是最佳方案。無需完全實時同步的資料,上data ...
怎麼簡單地理解資料庫的概念?
舉個資料庫的例子 姓名性別年齡 張三男 21歲 李四男 20歲 王五男 19歲 以上是乙個資料庫的內容。這些資訊可以採用某種檔案形式儲存在計算機磁碟上,如儲存為文字檔案 d names.txt。可以認為是資料庫以檔案的形式儲存在磁碟。之後可以通過命令進行檢索 修改 統計。資料庫檔案和最後的那些操作命...
請問資料庫中的自連線怎麼理解?
時光與位元組 自連線是內連線的一種,內連線可分為等值連線和自身連線。等值連線 查詢兩個表中連線字段相等的記錄。自身連線 就是和自己進行連線查詢,給一張表取兩個不同的別名,然後附上連線條件。以下面這張表為例 要查詢與姓名 HH 同齡且籍貫也相同的學生資訊。就可以用自連線查詢 SELECTB.學號,B....