[后端面试题整理]Redis面试题

redis问题汇总

为什么用缓存?

  • 1、满足项目高性能
    • 每次查询mysql耗时太高,可以将数据处理好后,直接存入缓存数据库,减少响应时间
  • 2、满足项目高并发
    • 并发场景不是很多,可以简单说说

缓存带来那些负面影响?

  • 缓存与数据库双写不一致
  • 缓存穿透、雪崩
  • 缓存并发竞争

介绍一下缓存击穿、雪崩、穿透?

  • 缓存穿透

    • 原因
      • 查询一个根本不存在的数据,缓存层和持久层都不会命中,请求直接压到数据库,从而压夸数据库。
    • 解决办法
      • 对空值缓存
      • 设置可访问的白名单
      • 采用布隆过滤器
  • 缓存击穿

    • 原因
      • 缓存中没有但是数据库中有的数据,由于用户特别多,所有用户都去数据库中读取,导致数据库压力激增
    • 解决办法
      • 预先设置高频词,实时调整高频词汇,增加高频词汇的过期时长
      • 使用分布式锁,一个线程去读库,其他的设置等待
  • 缓存雪崩

    • 原因
      • 大量缓存集中过期,查询数量巨大,引起数据库压力过大,甚至down机
    • 解决办法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值