Redis缓存机制

redis缓存机制

一、缓存更新
缓存更新的策略有很多,这里介绍两种比较主要的情况:
第一种情况,先更新数据库再同步更新缓存或者先更新缓存再同步更新数据库,其实都属于write through,同步更新的好处在于可以很好的保持数据的一致性,但是缺点在于同步更新时,必然会影响性能。
第二种情况,先更新缓存,然后再异步写回数据库,也就是write back,异步写回的好处在于不会影响缓存的高性能,能够快速响应客户端,但是缺点在于在数据异步写回到数据库之前,存在缓存和数据库数据短暂不一致。
二、缓存雪崩
缓存雪崩是指,在同一时刻有大量缓存失效,导致大量的请求到达后端数据库,从而使数据库承受巨大的压力。
应对措施:
1.使用Redis缓存时,应当避免出现大量缓存数据同时失效,建议在设置键过期时间时,将过期时间加上一定范围的随机值,从而达到增加随机失效时间的目的,避免过多的缓存key在同一时间失效。
2. 提高Redis本身的可靠性,比如使用主从模式或者集群模式。
三、缓存穿透
缓存穿透是指,从Redis缓存读取不到数据,同时也从数据库读取不到数据,这样导致Redis缓存无法更新,每次请求也都要查询数据库。
应对措施:
1.将Redis缓存和数据库都查不到数据的缓存key设置成NULL值,这样客户端将从缓存拿到空值,因此也不会请求到数据库
2.前段组件限流
3.在网关进行接口调用的检验,防止恶意攻击
四、缓存击穿
缓存击穿是指,某个热点数据失效,导致大量请求该热点数据的流量到达后端数据库。
应对措施:
对热点数据不设置过期时间
五、缓存替换
Redis将所有数据都存储在内存,而内存空间是有限的,当缓存中数据存满了之后,必然要采取用新数据替换掉缓存中旧数据的操作。
常用替换方法:
1.allkeys-lru
优先移除最近未使用的key,这种替换算法适用于有冷热数据之分的场景,即淘汰冷数据,留下热数据。
3. allkeys-random
随机淘汰key,这种替换算法适用于无冷热数据之分的场景,即淘汰任意键都不对业务造成影响。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值