redis缓存和Mysql的数据同步面试问题
来源:2-14 【扩展资料】工具的安装方法与说明
奶茶三兄弟d
2020-08-19
- 老师,想问下,面试的时候被问到你是如何保证redis缓存和mysql数据同步的,就拿咱们课程优惠卷为例的话, 可以不可以这样说,
- 比如查询的话, 如果从缓存中查不到,先设置一个默认值,这样后面大的并发就可以先返回了,然后去数据库中查询数据,查询到了,再去重新设置缓存
- 如果是新增的话,比如pop优惠卷码, 先是保存到数据库,这里做异常处理, 然后成功后,再将数据设置到redis缓存中,如果失败的话, 放在异常里, 打上日志, 或者将信息也写Mysql某张表中, 后续补偿的话,可以用定时器定时扫描这张表,做数据库和redis缓存的数据同步,或者是不是可以跟据异常信息去补偿… 老师根据异常信息去补偿数据,是利用mq嘛,还是怎么做的,老师如果是您的话,该怎么做呢
写回答
1回答
-
同学你好:
1. Redis 和 MySQL 在不做数据补偿的情况下,是做不到数据强一致性的,毕竟是两个组件,没法保证统一的事务
2. 这就是缓存穿透的问题,可以这样做
3. 补偿之类的,可以使用任意的办法,不一定需要使用消息队列,只要能够将丢失的数据重新加回去就可以了
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
30
相似问题