目 录CONTENT

文章目录

Mysql与Redis一致性解决方案

aprilz
2023-02-04 / 0 评论 / 0 点赞 / 1,077 阅读 / 233 字
  1. 延时双删

    伪代码

   public void 延时双删{
   // 减少延后删除导致的其他线程读取老数据的尝尽出现。
   delCache(key);
   updateMysql(data);
   // 解决缓存与mysql无法保证最终一致性的问题。
   sleep(time);
   delCaChe(key)
   }   

系统并发量不高的情况下可以使用这种方式解决

  1. 基于mysql触发器更新redis

方案分析:

  • 这种方案适合于读多写少,并且不存并发写的场景
  • 因为MySQL触发器本身就会造成效率的降低,如果一个表经常被操作,这种方案显示是不合适的
  1. 基于MQ或者Canal实现最终一致性(基于监听Mysql binlog)

系统并发量高的情况下可以使用这种方式解决,但是也要考虑第三方中间件成本

  1. 使用读写锁
    强一致性,但是性能较差,不推荐
0

评论区