MySQL和Redis的数据一致性

2023.8.23

1.可以考虑canalServer去拿mysql集群主节点的binlog,再去更新,这样代码层面、dba层面修改数据都可以同步

 

2023.8.24

1.延迟双删的问题模型

  线程1准备清空redis,再更新db

  T1时刻,缓存已清空,线程2做查询任务,此时发现没有Redis,就去更新了Redis,读取到的依旧是老数据

 流程

  删缓存->更db->起线程sleep一定时间,再次删缓存

2.双写一致性

 两个线程同时想要修改db中的某行记录,然后更新Redis,竞争到行锁修改记录之后,怎么保证Redis缓存的更新顺序

 思路是将更新db、更新Redis的操作原子化

posted @ 2023-08-23 22:31  sellingpear  阅读(10)  评论(0)    收藏  举报