缓存使用注意点总结

常见的缓存问题以及解决方案:
当系统处于高峰期的时候,业务流量剧增,给系统带来了很大的压力,严重情况下可能导致系统宕机。

我们一般都会使用 异步/限流/缓存 等措施来减轻DB的 压力。其中每种措施都有复杂的使用场景以及措施。 而其中 缓存我们使用的就有很多,例如缓存 个人主页圈子列表第一页,等一些不太易变的数据。

在使用缓存系统的时候,当遇到大并发的情况下,经常会遇到较多的问题,以下总结一下常见的问题及解决方案。

1. 缓存穿透:

在使用缓存的时候,一般是先去缓存中查询,如果没有值,那么就去数据库取,如果数据库也没有,那么就根据业务需求,抛出异常,或者返回空。
那么就会存在这种情况,如果用户一直在访问一个数据库中不存在的数据,例如 id = -1, 就会导致每次请求都会先去缓存中查询,然后再去数据裤查一次,如果这种请求多的话,就会造成严重的性能问题,这种请求就是缓存穿透。

解决方案:

  1. 对于请求参数做校验, 用户鉴权,查询条件做 基础逻辑校验,例如 ID > 0, name != “” 等等。 在业务逻辑层 就去规避 数据库层的无效查询。
  2. 如果在数据库中,根据指定条件没有查询到值,那么可以将对应的字段存储到缓存中去, value 为 null(设置短暂的过期时间,防止后续插入之后仍然查询不到数据),在最近的时间内其他的请求就会直接返回未查到的结果。

2.缓存

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值