当前位置:网站首页>mysql的缓存方案问题解决
mysql的缓存方案问题解决
2022-07-17 05:08:00 【HjasnJH】
前面讲到mysql的缓存方案,把读压力放到了redis
正常情况下,两者配合工作完全没有问题
缓存穿透
假设某个数据redis不存在, mysql也不存在,⽽且⼀直尝试读怎么办?缓存穿透,数据最终压⼒
依然堆积在mysql,可能造成mysql不堪重负⽽崩溃;
解决
1. 发现mysql不存在,将redis设置为 <key, nil> 设置过期时间 下次访问key的时候 不再访问
mysql 容易造成redis缓存很多⽆效数据;
2. 布隆过滤器,将mysql当中已经存在的key,写⼊布隆过滤器,不存在的直接pass掉;
缓存击穿
缓存击穿 某些数据redis没有,但是mysql有;此时当⼤量这类数据的并发请求,同样造成mysql
过⼤;
解决
1. 加锁
请求数据的时候获取锁,如果获取成功,则操作,获取失败,则休眠⼀段时间(200ms)再去获
取;获取成功,则释放锁
⾸先读redis,不存在,读mysql,存在,写redis key的锁
整个流程⾛完,才让后⾯的服务器访问
2. 将很热的key,设置不过期
缓存雪崩
表示⼀段时间内,缓存集中失效(redis⽆ mysql 有),导致请求全部⾛mysql,有可能搞垮数据库,
使整个服务失效;
解决
1. 如果因为缓存数据库宕机,造成所有数据涌向mysql;
采⽤⾼可⽤的集群⽅案,如哨兵模式、 cluster模式;
2. 如果因为设置了相同的过期时间,造成缓存集中失效;
设置随机过期值或者其他机制错开失效;
3. 如果因为系统重启的时候,造成缓存数据消失;
重启时间短, redis开启持久化(过期信息也会持久化)就⾏了; 重启时间⻓提前将热数据导
⼊redis当中;
边栏推荐
- BUUCTF 杂项——二维码
- Wechat applet status bar
- 【LeetCode——编程能力入门第二天】运算符(位1的个数/整数的各位积和之差)
- 数据可视化
- Cesium 获取鼠标点击处经纬度的三种方法
- Base64 and file conversion
- [AI] action recognition using simple neural network -- Based on coco key points
- Submit the uniapp form (input, radio, picker) to get the parameter value
- 【Es6】forEach,for...in ,for...of专栏,让你通过项目案例快速分辨各种for语句的使用方式及区别(完整版)内部有详细注释
- 基于PaddleOCR解决文本检测训练模型与inference模型预测效果不一致的问题
猜你喜欢

Submit the uniapp form (input, radio, picker) to get the parameter value

ThreadLocal thread safety example and its principle

IText modify PDF Text

Mongo DB aggregate operations and indexes

Applet cloud development upload pictures to cloud storage

Wechat applet cloud development and use method-1

es6新增-对象部分

微信小程序云开发使用方法-1

Wechat applet obtains the week, morning, noon and evening of month, year and day

路由器loopback口实验
随机推荐
ArcGIS 点云(xyz)数据转DEM
Use echars to realize water drop, ring, segmentation, stacking, organization chart, map outline and other charts
微信小程序状态栏
【C语言—零基础第十四课】变量的作用域与存储类
接上期内容:轮播图剩余两种方法
获取URL参数的两种方法及location对象的各项获取方式
Two JS methods of rolling wheel loading and modal box dragging
字幕文件与视频文件对不上的处理方式
The first smart contract program faucet sol
Es6 真实案例解构(多维数组对象)全新案例:
Nacos配置管理
STL容器——queue与deque的基本操作
基于PaddleOCR解决文本检测训练模型与inference模型预测效果不一致的问题
Cesium 綁定鼠標事件和移除鼠標事件
交换机用户模式、特权模式、全局模式、端口模式
Easypoi之excel多sheet导入
Applet cloud development upload pictures to cloud storage
Bi design: distributed high concurrency epidemic prevention health management system based on vue+socket+redis
es6新增-运算符的扩展
【C语言—零基础第十一课】旋转大转盘之指针