redis缓存和Mysql的数据同步面试问题

来源:2-14 【扩展资料】工具的安装方法与说明

奶茶三兄弟d

2020-08-19

  1. 老师,想问下,面试的时候被问到你是如何保证redis缓存和mysql数据同步的,就拿咱们课程优惠卷为例的话, 可以不可以这样说,
  2. 比如查询的话, 如果从缓存中查不到,先设置一个默认值,这样后面大的并发就可以先返回了,然后去数据库中查询数据,查询到了,再去重新设置缓存
  3. 如果是新增的话,比如pop优惠卷码, 先是保存到数据库,这里做异常处理, 然后成功后,再将数据设置到redis缓存中,如果失败的话, 放在异常里, 打上日志, 或者将信息也写Mysql某张表中, 后续补偿的话,可以用定时器定时扫描这张表,做数据库和redis缓存的数据同步,或者是不是可以跟据异常信息去补偿… 老师根据异常信息去补偿数据,是利用mq嘛,还是怎么做的,老师如果是您的话,该怎么做呢
写回答

1回答

张勤一

2020-08-19

同学你好:

    1. Redis 和 MySQL 在不做数据补偿的情况下,是做不到数据强一致性的,毕竟是两个组件,没法保证统一的事务

    2. 这就是缓存穿透的问题,可以这样做

    3. 补偿之类的,可以使用任意的办法,不一定需要使用消息队列,只要能够将丢失的数据重新加回去就可以了


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

3
0

Spring Cloud微服务实战 打造企业级优惠券系统

微服务,SpringCloud,SpringBoot面试、毕设、

1208 学习 · 487 问题

查看课程