redis永不过期_备战金三银四之Redis应知应会(二)

转眼间2020已逝,2020的Flag是否实现已成过眼云烟,2021的金三银四转瞬即到,把握金三银四涨薪不再是梦。下面是小编在复习过程中总结的面试中常问的redis相关的问题,希望可以帮到大家,祝大家早日找到心仪的工作[兔子][兔子]!

接上一篇备战金三银四之Redis应知应会(一)

bdc2feceb5e1b041bf3452b797e9dedb.png

6.Redis缓存淘汰策略?

当redis存储的数据已达到最大的存储容量时:会自动的触发redis的缓存删除更新。

具体的策略如下所示:

9d78f3da58ccd5e83608be984e602cff.png

redis缓存淘汰策略

这里扩展一下LRU算法

LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当需淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少使用的页面予以淘汰。

7.Redis持久化方式?

redis支持两种持久化的方式:AOF(append-only file)RDB

AOF:即为将redis的操作命令以日志的方式追加写入日志文件中,需要设置开启。

RDB:定期的将redis内存中的数据dump到磁盘上的rdb文件内,默认开启。

091c408da8aa13872d0bfcd7b80efb71.png

PS:通常情况下在实际的生产中,为了保证数据的可靠性,会同时启用AOF与RDB两种方式,进行持久化。

8.缓存问题?

当我们使用redis来作为缓存使用时,不得不面对各种缓存出现的问题,常见的缓存问题有如下三种:缓存雪崩、缓存穿透、缓存击穿。

  • 缓存雪崩: 缓存雪崩指的是缓存中大量的数据同一时间失效,此时有大量的查询操作,无法从缓存中命中,导致查询操作都 打到了的DB上,一瞬间增加DB的压力,甚至宕机。
  • 缓存穿透:缓存穿透是指缓存和数据库中都没有的数据,大量的查询缓存与数据库中都没有的数据,直接透过缓存,直接打到了DB上,引起数据库的压力瞬间增大。
  • 缓存击穿: 缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。

解决方式:

缓存雪崩:

  1. 为不同的key设置随机的过期时间。
  2. 设置热点数据永不过期。
  3. 启用二级缓存,设置与一级缓存不同的失效时间

缓存穿透:

  1. 启用布隆过滤器
  2. 将查询的key存入缓存中,设置较短的过期时间

缓存击穿:

  1. 设置热点数据永不过期。
  2. 使用分布式锁,保证同一时间只有一个请求会打到数据库上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值