没有合适的资源?快使用搜索试试~ 我知道了~
总结redis实战解决方案
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 0 下载量 80 浏览量
2022-07-06
16:26:34
上传
评论 1
收藏 948KB PPTX 举报
温馨提示
试读
26页
redis实战问题:双写一致性(数据库与redis)、缓存雪崩、缓存穿透、缓存并发竞争、redis策略配置等
资源推荐
资源详情
资源评论
1
1
2
2
缓存雪崩
3
3
缓存穿透
双写一致性
4
4
缓存的并发竞争
一致性问题是分布式系统常见问题,分为最终一致性和强一致性。数据库和缓存双写,就必然会存在不一致的问题。
回答这个问题,先明白一个前提。就是如果对数据有强一致性要求,不能放缓存。我们所做的一切,只能保证最终一致
性。另外,从根本上来说,只能说降低不一致发生的概率,无法完全避免。因此,有强一致性要求的数据,不能放缓存
。
1、强一致性:在任何时刻所有的用户或者进程查询到的都是最近一次成功更新的数据。强一致性是程度最高一致性
要求,也是最难实现的。代表:关系型数据库更新操作。
2、最终一致性:和强一致性相对,在某一时刻用户或者进程查询到的数据可能都不同,但是最终成功更新的数据都
会被所有用户或者进程查询到。代表:当前主流的nosql数据库都是采用这种一致性策略。
上图解析: 写操作先执行,1删除缓存,再执行2,更新db;而读操作先执行3,读取cache数据,未找到数据时执
行4,查询db。
强一致性:每次读取数据都是最新的更新数据。如果使用缓存,可能是更新前的数据,而不是更新后的数据
最终一致性:不保证双写一致性,写操作2没执行完时,读操作4执行了,读到了脏数据到cache;采用双写一致性
策略,最终能读取到更新后的数据(写操作2更新后的数据)
为什么会出现不一致?
先操作缓存,在写数据库成功之前,如果有读请求发生,可能导致旧数据入缓存,引发数据不一致。
在分布式环境下,数据的读写都是并发的,上游有多个应用,通过一个服务的多个部署(为了保证可用性,一定是部
署多份的),对同一个数据进行读写,在数据库层面并发的读写并不能保证完成顺序,也就是说后发出的读请求很可能
先完成(读出脏数据)。
上图解析: 写操作先执行,1删除缓存,再执行2更新db;而读操作先执行3,读取cache数据,未找到数据时执行4,查
询db。
问题所在: 写操作2没执行完时,读操作4执行了,则读到了脏数据到cache中,造成了cache和db的数据不一致问题
剩余25页未读,继续阅读
zxfmamama
- 粉丝: 1
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 珍藏多年的基于matlab实现潮流计算程序源代码集合,包含多个潮流计算程序.rar
- 使用FPGA实现串-并型乘法器
- 基于matlab实现针对基于双曲线定位的DV-Hop算法中误差误差出一种基于加权双曲线定位的DV-Hop改进算法.rar
- 基于matlab实现由遗传算法开发的整数规划,车辆调度问题.rar
- 电视家7.0(对电视配置要求高).apk
- 免费计算机毕业设计-基于JavaEE的医院病历管理系统设计与实现(包含论文+源码)
- 手机端 我的世界融合植物大战僵尸版.apk
- 植物大战僵尸 · 戴夫的老年生活 手机版.apk
- Runcraft · 我的世界跑酷游戏 手机端.apk
- pta题库答案c语言.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页