数据可以保持延迟,但是数据最终也是一致性的
1.采用了异步处理方法,当有数据更新和插入数据库的时候,放入MQ,顶一个任务监听MQ有数据就进行更新redis缓存
2.阿里提供cannal中间件,他是一个个服务,可以伪装一个mysql节点,当mysql有更新操作的时候,会监听binlog二进制日志数据,更新到redis缓存当中
数据强一致性
1.使用的readsson分布式锁,当读数据的时候添加了一个共享锁,读读不互斥,写互斥,
写的时候添加一个排他锁又称独占锁,可以读读互斥,读写互斥。这样就保证了数据和redis缓存数据一致,共享锁和排他锁 都是一把锁
排他锁底层用的redis sexnx锁,如果有就返回false,如果没有就新建
redis作为缓存,mysql的数据如何与redis进行同步呢?双写一致性
![](https://img-home.csdnimg.cn/images/20240711042549.png)