鍍金池/ 問(wèn)答/人工智能/ 關(guān)于redis緩存策略的一個(gè)疑惑

關(guān)于redis緩存策略的一個(gè)疑惑

以下這個(gè)是比較標(biāo)準(zhǔn)的redis緩存策略:
1.讀:應(yīng)用程序先從cache取數(shù)據(jù),沒有得到,則從數(shù)據(jù)庫(kù)中取數(shù)據(jù),成功后,放到緩存中。
2.讀:應(yīng)用程序從cache中取數(shù)據(jù),取到后返回。
3.增刪改:先把數(shù)據(jù)存到數(shù)據(jù)庫(kù)中,成功后,再讓緩存失效。

我現(xiàn)在對(duì)第三點(diǎn)感到疑惑,為什么更新完DB,然后去讓緩存失效,而不是直接去更新緩存。我知道讓緩存失效后,再去查的時(shí)候會(huì)命中不了緩存然后去讀DB,然后再去更新緩存。那為什么不是在剛剛更新DB的時(shí)候就把緩存更新掉呢?

而且,萬(wàn)一有些場(chǎng)景,查數(shù)據(jù)的地方,只會(huì)去redis查,redis沒有也不會(huì)去db里面查,針對(duì)這個(gè)情況,上面的第三條策略就不行了吧

回答
編輯回答
浪蕩不羈

保證了數(shù)據(jù)庫(kù)更新成功在去更新緩存。如果剛剛更新DB的時(shí)候就把緩存更新掉,那么數(shù)據(jù)庫(kù)更新失敗,就會(huì)導(dǎo)致數(shù)據(jù)不一致。出現(xiàn)垃圾數(shù)據(jù)

2017年4月13日 11:39
編輯回答
不舍棄

直接把12封裝成接口,不就可以給多端調(diào)用了。保持?jǐn)?shù)據(jù)的統(tǒng)一。

2018年3月4日 07:08