緩存更新的套路
自己的問題:
更新時(shí)機(jī): 在什么時(shí)機(jī)存儲(chǔ)到mysql呢?
自己的解答:
1.可以在一段時(shí)間后定時(shí)存儲(chǔ)到mysql.
這個(gè)方案是以前老的方案, 這種情況如果服務(wù)器掛了, 有可能會(huì)導(dǎo)致數(shù)據(jù)丟失。
2.可以異步存儲(chǔ)數(shù)據(jù)(再開個(gè)進(jìn)程)。
這個(gè)自己做有點(diǎn)復(fù)雜了, 可以交給memcach緩存做。
更好的解答:
1.更新到緩存服務(wù),由緩存服務(wù)異步更新到mysql。
2.直接更新到mysql,并刪除掉緩存服務(wù)的數(shù)據(jù)。
參考了網(wǎng)上的方案:
想采用的方案:Read/Write Through Pattern
要點(diǎn):更新數(shù)據(jù)由緩存服務(wù)來做。
Write Back套路,一句說就是,在更新數(shù)據(jù)的時(shí)候,只更新緩存,不更新數(shù)據(jù)庫,而我們的緩存會(huì)異步地批量更新數(shù)據(jù)庫。這個(gè)設(shè)計(jì)的好處就是讓數(shù)據(jù)的I/O操作飛快無比(因?yàn)橹苯硬僮鲀?nèi)存嘛 ),因?yàn)楫惒剑瑆rite backg還可以合并對(duì)同一個(gè)數(shù)據(jù)的多次操作,所以性能的提高是相當(dāng)可觀的。