原文写的很好:高并发下先操作数据库还是先操作缓存

最终决定的方案如下

在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库,再操作缓存。
【并发】高并发下先操作数据库还是先操作缓存?

  • (1)读取缓存中是否有相关数据

  • (2)如果缓存中有相关数据value,则返回

  • (3)如果缓存中没有相关数据,则从数据库读取相关数据放入缓存中key->value,再返回

  • (4)如果有更新数据,则先更新数据,再删除缓存

  • (5)为了保证第四步删除缓存成功,使用binlog异步删除

  • (6)如果是主从数据库,binglog取自于从库

  • (7)如果是一主多从,每个从库都要采集binlog,然后消费端收到最后一台binlog数据才删除缓存

相关文章: