如何保证数据库和redis数据一致?(待完善)

方案一

具体描述

只有读操作会更新缓存,读操作如果没有命中缓存,则去数据库里查询,然后在写回到
缓存,
写操作先往数据库里写,然后再去删除缓存

存在的问题

redis如果删除不了就完蛋了,
当然如果先失效掉缓存,再更新库也有问题 多线程下redis会被其他线程更新导致redis一直是赃数据

方案二:

具体描述

通过监听binlog然后mq异步更新redis

存在的问题

主从延时会导致数据丢失?

Liam 2020/03/15 下午10:38
延时和丢数据是两个问题哦

Strong heart 2020/03/15 下午10:38
我觉得石杉的方案比较靠谱,内存队列异步串行化

Strong heart 2020/03/15 下午10:38
这是导致丢数据的原因

Strong heart 2020/03/15 下午10:39
异步同步数据,必然会有数据线的丢失问题

发布了33 篇原创文章 · 获赞 37 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/hagle_wang/article/details/104890625