缓存技术方案

一、现在为了提高应用并发量,我们通常会在应中添加缓存
如何保证数据库、缓存一致性?
1、 业务方法修改数据库时,同步修改缓存-----》 实时更新
2、 定时任务, 定时同步-》 统计类展示
3、 两分钟内,可不一致-> 大量业务 都可以接受----》 redis失效机制,未失效期内的不一致
利用缓存失效,那么可能会现在缓存击穿 缓存雪崩
a = 1 b = 1 c = 1 某一秒所有数据都失效,大并发量来请求那么发现缓存失效,同时请求数据库 那么就是缓存雪崩
雪崩:非多的缓存数据,同时失效,导致大量主请求同时查询数据库
怎么解决雪崩:预防所有缓存失效时间差,A 1s失效 B 2s失效……

缓存穿透: 查询缓存查不到
订单号,假如黑客自己造不同订单号来查询,那么缓存每次都是穿透的,加一个 布隆过滤器---------存Key到布隆过滤器中,占用内存比较小
java里面的一个布隆技术

缓存击穿: 缓存 a = ? 数据库 a = ?
同一个key 非常多的查询,key失效 同时去查库
大并发量100个同时请求缓存,可以查到,但缓存同时失效,那么这么多100个请求同时请求数据库
解决:1+99 允许1个去查数据库,其它等待,1个查到返回到缓存,剩下99个去查缓存
缓存穿透与击穿区别:
穿透:很多缓存同时失效,查缓存查不到,有大量访问数据库
击穿:同一个key失效,有大量访问

缓存方案的局限?
只有读请求,写请求不法满足

解决: 读定分离

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值