Mysql与redis缓存一致性
2021/5/19 19:26:15
本文主要是介绍Mysql与redis缓存一致性,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在高并发场景下单单使用mysql提供数据服务显然,是无法满足系统的吞吐量,目前的系统架构中我们一般会采用redis做数据缓存,以此避免请求过多的走数据库从而影响系统性能。但是在高并发场景下保持mysql与redis数据的一致性问题不容忽视。
一、缓存的使用
二、mysql与redis缓存一致性问题
场景:线程A,修改数据,线程B使用数据。
1、双删策略:线程A写数据时,先删除redis的数据,然后修改mysql,之后再删除redis的数据。
问题:线程A在修改mysql的时候,线程B先读取了数据,接着线程A执行完毕,此时redis中没有数据了,接着线程B处理业务然后设置redis缓存,此时redis中的数据还是线程A修改前的数据。
2、延迟双删策略:线程A写数据时,先删除redis的数据,然后修改mysql,之后再延迟一个业务时间后删除redis的数据。
问题:该策略无法包括这个延迟时间;并且会影响系统的处理能力。
3、读写串行化:只要读和写是并发产生的就必然会存在,数据一致性问题。如果要彻底解决该问题,就要串行。该中方式会影响效率,如果采用可以做好压力测试。
使用分布式锁:影响效率
使用队列:将操作同一资源的请求,打到同一个队列中。
4、cancel:同步mysql的bin_log ,更新redis。该方式也会存在延迟。
5、redis 设置失效时间
这篇关于Mysql与redis缓存一致性的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20部署MySQL集群入门:新手必读指南
- 2024-11-20部署MySQL集群教程:初学者指南
- 2024-11-20部署MySQL集群项目实战:新手教程
- 2024-11-20部署MySQL集群资料:新手入门教程
- 2024-11-20MySQL集群部署教程:入门级详解
- 2024-11-20MySQL集群教程:入门与实践指南
- 2024-11-20部署MySQL集群教程:新手入门指南
- 2024-11-20MySQL读写分离教程:轻松入门
- 2024-11-20部署MySQL集群入门:一步一步搭建你的数据库集群
- 2024-11-19部署MySQL集群学习:入门教程