数据双写时--如何保证数据库和缓存中数据一致性呢?
下文笔者讲述数据双写时---保证一致性的方法分享,如下所示
数据一致性简介
数据一致性: 指我们同时向数据库和缓存中写数据 需保证两者数据一致性,那么如何处理呢?下文笔者将一一道来,如下所示
数据一致性处理方法: 我们只需将读和写操作放入到一个队列中 然后依次执行,就能保证读和写的一致性
缓存一致性其它解决方案说明
操作方式 | 描述 | 解决方法 |
先写缓存,再写数据库, 缓存写成功,数据库写失败 | 缓存写成功,但写数据库失败或者响应延迟, 则下次读取(并发读)缓存时,就出现脏读 | 这个写缓存的方式,本身就是错误的, 需要改为先写数据库, 把旧缓存置为失效;读取数据的时候,如果缓存不存在,则读取数据库再写缓存 |
先写数据库,再写缓存, 数据库写成功,缓存写失败 | 写数据库成功,但写缓存失败, 则下次读取(并发读)缓存时,则读不到数据 | 缓存使用时,假如读缓存失败, 先读数据库,再回写缓存的方式实现 |
需要缓存异步刷新 | 指数据库操作和写缓存不在一个操作步骤中,比如在分布式场景下, 无法做到同时写缓存或需要异步刷新(补救措施)时候 | 确定哪些数据适合此类场景, 根据经验值确定合理的数据不一致时间, 用户数据刷新的时间间隔 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。