我的一个见解

来源:3-4 幂等性概念及业界主流解决方案

海王sk

2018-08-09

1)、先操作数据库,再操作缓存,如果:第一步成功,第二步失败,会导致,数据库里是新数据,而缓存里是旧数据,业务无法接受

2)、先操作缓存,再操作数据库,如果:第一步成功,第二步失败,会导致,缓存里是set后的数据,数据库里是之前的数据,数据不一致,业务无法接受,并且,一般来说,数据最终以数据库为准,写缓存成功,其实并不算成功。

最终,先操作缓存,还是先操作数据库?

    1)读请求,先读缓存,如果没有命中,读数据库,再set回缓存,老师所说的到底以redis为准还是数据库为准,个人选择数据库,redis最终只需要给我返回一个订单信息即可

   2)写请求

        2.1)先缓存,再数据库

        2.2)缓存,使用delete,而不是set


写回答

1回答

阿神

2018-08-09

这个问题,看实际需求,不一定所有的都是要先写数据库,这个问题存在 一个缓存淘汰和 缓存更新的问题,看实际业务需求,到底哪个代价比较大,然后去衡量,因为无论哪种情况 都不能保证数据100%一致,所以还是要看情况而定哦

0
0

RabbitMQ精讲 从0到1驾驭RabbitMQ应用与设计

从0到1,全面深入掌握RabbitMQ消息中间件技术

1460 学习 · 443 问题

查看课程