Redis相关面试题
-
- >**面试官**:什么是缓存穿透 ? 怎么解决 ?
- >**面试官**:好的,你能介绍一下布隆过滤器吗?
- >**面试官**:什么是缓存击穿 ? 怎么解决 ?
- >**面试官**:什么是缓存雪崩 ? 怎么解决 ?
- >**面试官**:redis做为缓存,mysql的数据如何与redis进行同步呢?(双写一致性)
- >**面试官**:那这个排他锁是如何保证读写、读读互斥的呢?
- >**面试官**:你听说过延时双删吗?为什么不用它呢?
- >**面试官**:redis做为缓存,mysql的数据如何与redis进行同步呢?(双写一致性)
- >**面试官**:redis做为缓存,数据的持久化是怎么做的?
- >**面试官**:这两种持久化方式有什么区别呢?
- >**面试官**:这两种方式,哪种恢复的比较快呢?
- >**面试官**:Redis的数据过期策略有哪些 ?
- >**面试官**:Redis的数据淘汰策略有哪些 ?
- >**面试官**:数据库有1000万数据 ,Redis只能缓存20w数据, 如何保证Redis中的数据都是热点数据 ?
- >**面试官**:Redis的内存用完了会发生什么?
- >**面试官**:Redis分布式锁如何实现 ?
- >**面试官**:好的,那你如何控制Redis实现分布式锁有效时长呢?
- >**面试官**:好的,redisson实现的分布式锁是可重入的吗?
- >**面试官**:redisson实现的分布式锁能解决主从一致性的问题吗
- >**面试官**:好的,如果业务非要保证数据的强一致性,这个该怎么解决呢?
- >**面试官**:Redis集群有哪些方案, 知道嘛 ?
- >**面试官**:那你来介绍一下主从同步
- >**面试官**:能说一下,主从同步数据的流程
- >**面试官**:怎么保证Redis的高并发高可用
- >**面试官**:你们使用redis是单点还是集群,哪种集群
- >**面试官**:redis集群脑裂,该怎么解决呢?
- >**面试官**:redis的分片集群有什么作用
- >**面试官**:Redis分片集群中数据是怎么存储和读取的?
- >**面试官**:Redis是单线程的,但是为什么还那么快?
- >**面试官**:能解释一下I/O多路复用模型?
>面试官:什么是缓存穿透 ? 怎么解决 ?
候选人:
嗯~~,我想一下
缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。这种情况大概率是遭到了攻击。
解决方案的话,我们通常都会用布隆过滤器来解决它
>面试官:好的,你能介绍一下布隆过滤器吗?
候选人:
嗯,是这样~
布隆过滤器主要是用于检索一个元素是否在一个集合中。我们当时使用的是redisson实现的布隆过滤器。
它的底层主要是先去初始化一个比较大数组,里面存放的二进制0或1。在一开始都是0,当一个key来了之后经过3次hash计算,模于数组长度找到数据的下标然后把数组中原来的0改为1,这样的话,三个数组的位置就能标明一个key的存在。查找的过程也是一样的。
当然是有缺点的,布隆过滤器有可能会产生一定的误判