error prone

Cache aside

r=read w=write

1
2
3
4
5
// 一个读、一个写,在并发情况下,race condition
// 这种情况下,会造成缓存里的数据依然是旧的
// 而且,后续的查询,都得到脏数据,直到有write操作
r.cache.get -> nil -> r.db.select --------------------> r.cache.put
w.db.update -> w.cache.del/put()

Share Comments