缓存双写一致性之更新策略探讨

反馈回来的面试题 

你只要用缓存,就可能涉及到redis缓存与数据库存储双写,

你只要是双写,就一定有数据一致性的问题

那么你如何解决一致性问题?

双写一致性,你先动缓存redis还是数据库mysql哪一个?why?

延时双删你做过吗?会有哪些问题?

有这么一种情况,微服务查询redis无mysql有,为保证数据双写一致性回写redis你需要注意什么?

双检加锁策略你了解过吗?如何尽量避免缓存击穿

redis和mysql双写100%会出纰漏,做不到强一致性,你如何保证最终一致性?


缓存双写一致性,谈谈你的理解

扫描二维码关注公众号,回复: 15052442 查看本文章

如果redis中有数据:需要和数据库中的值相同

如果redis中无数据:数据库中的值要是最新值,且准备回写redis

缓存按照操作来分,细分两种

1.只读缓存


2.读写缓存

2.1 同步直写策略

写数据库后也同步写redis缓存,缓存和数据库中的数据一致;

对于读写缓存来说,要想保证缓存和数据库中的数据一致,就要采用同步直写策略

2.2 异步缓写策略

正常业务运行中,mysql数据变动了,但是可以在业务上容许出现一定时间后才作用于redis,比如仓库、物流系统

异常情况出现了,不得不将失败的动作重新修补,有可能需要借助Kafka或者rabbitmq等消息中间件,实现重试重写

猜你喜欢

转载自blog.csdn.net/fgwynagi/article/details/130119061