Cache Aside Pattern(缓存模式)
本文主要討論這么幾個問題:
(1)“緩存與數(shù)據(jù)庫”需求緣起
(2)“淘汰緩存”還是“更新緩存”
(3)緩存和數(shù)據(jù)庫的操作時序
一、需求緣起
場景介紹
緩存是一種提高系統(tǒng)讀性能的常見技術(shù),對于讀多寫少的應(yīng)用場景,我們經(jīng)常使用緩存來進行優(yōu)化。例如對于用戶的余額信息表account(uid, money),業(yè)務(wù)上的需求是:
(1)查詢用戶的余額,SELECT money FROM account WHERE uid=XXX,占99%的請求
(2)更改用戶余額,UPDATE account SET money=XXX WHERE uid=XXX,占1%的請求
由于大部分的請求是查詢,我們在緩存中建立uid到money的鍵值對,能夠極大降低數(shù)據(jù)庫的壓力。
讀操作流程
有了數(shù)據(jù)庫和緩存兩個地方存放數(shù)據(jù)之后(uid->money),每當(dāng)需要讀取相關(guān)數(shù)據(jù)時(money),操作流程一般是這樣的:
(1)讀取緩存中是否有相關(guān)數(shù)據(jù),uid->money
(2)如果緩存中有相關(guān)數(shù)據(jù)money,則返回【這就是所謂的數(shù)據(jù)命中“hit”】
(3)如果緩存中沒有相關(guān)數(shù)據(jù)money,則從數(shù)據(jù)庫讀取相關(guān)數(shù)據(jù)money【這就是所謂的數(shù)據(jù)未命中“miss”】,放入緩存中uid->money,再返回
緩存的命中率 = 命中緩存請求個數(shù)
總結(jié)
以上是生活随笔為你收集整理的Cache Aside Pattern(缓存模式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: workerman的基本用法
- 下一篇: TCP/UDP协议基本概念