Redis缓存和数据库一致性解决方案

双删加超时

在写库前后都进行redis.del(key)操作,并且设定合理的超时时间。
这样最差的情况是在超时时间内存在不一致,当然这种情况极其少见,可能的原因就是服务宕机。
此种情况可以满足绝大多数需求。
当然这种策略要考虑redis和数据库主从同步的耗时,所以在第二次删除前最好休眠一定时间,比如500毫秒,这样毫无疑问又增加了写请求的耗时

异步更新缓存(基于订阅binlog的同步机制)

技术整体思路:

MySQL binlog增量订阅消费+消息队列+增量数据更新到redis

  • 读Redis:热数据基本都在Redis写
  • MySQL:增删改都是操作MySQL
  • 更新Redis数据:MySQ的数据操作binlog,来更新到Redis
posted @ 2022-02-10 12:24  一刹流云散  阅读(243)  评论(0编辑  收藏  举报