开发者社区> 问答> 正文

求redis缓存与数据库一致性解决方案?

求redis缓存与数据库一致性解决方案?

展开
收起
李博 bluemind 2019-02-26 16:43:51 6398 0
9 条回答
写回答
取消 提交回答
  • 3年淘宝运营支撑系统研发,6年云数据库平台架构,RDS,NoSQL业务

    每次更新的时候先插入一条 记录status = 0 ,然后开始更新 数据库,再更新缓存,结束后,再update status = 1 , 如果中间发生中断,比如服务器故障,网络中断等,那么在重新恢复后,可以先查数据库,再更新缓存,保证两者的一致性;

    2019-07-17 23:29:29
    赞同 展开评论 打赏
  • 数据一致性可以通过后台巡检来完成,避免数据库和缓存的不一致

    2019-07-17 23:29:29
    赞同 展开评论 打赏
  • 强一致应该做不到,最终一致可以监听BINLOG完成同步

    2019-07-17 23:29:29
    赞同 展开评论 打赏
  • redis与数据库完全一致的可能性比较低,如果不要求100%的一直,可以监听数据的binlog来更新redis。

    2019-07-17 23:29:29
    赞同 展开评论 打赏
  • 公众号「服务端思维」

    redis cache 是可以接受一段时间的不一致,每次更新的时候可以清空缓存或者再更新一次

    2019-07-17 23:29:29
    赞同 展开评论 打赏
  • 一般只能保证最终一致,更新后缓存删除掉,如果删除报错很重要的业务还需要有些补偿机制

    2019-07-17 23:29:29
    赞同 展开评论 打赏
  • 第一点:采用类似于分布式事务消息来保证. 两阶段提交
    第二点: 每次update 数据库都将缓存清空

    2019-07-17 23:29:29
    赞同 展开评论 打赏
  • 一致性应该只是对修改数据时才会有一致性问题
    1.单独修改
    修改数据时,先更新redis后更改数据库
    在修改数据时可能正在读数据,因此需要先更新redis,读取的就是最新的数据,后续更改数据库。
    2.并发修改
    需要分布式锁,只有先拿到分布式锁的线程才允许更改

    2019-07-17 23:29:29
    赞同 展开评论 打赏
  • 路过

    2019-07-17 23:29:29
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载