Redis面试

目录

一、Redis的使用场景

二、缓存三大问题(穿透、击穿、雪崩)

(1)缓存穿透

(2)缓存击穿

1.互斥锁

2.逻辑过期 

(3)缓存雪崩​编辑

三、双写一致性

(1)一致要求高

(2)允许延迟

四、Redis持久化

(1)RDB的执行原理

 (2)AOF

(3)RDB与AOF的对比​编辑

 五、数据过期策略

(1)惰性删除

(2)定期删除​编辑

六、数据过期策略​编辑​编辑​编辑​编辑

 七、Redis分布式锁​编辑​编辑​编辑​编辑

Redisson实现的分布式锁​编辑​编辑​编辑

八、Redis的其他面试题

 (1)主从复制​编辑

(2)哨兵模式​编辑​编辑

(3)分片集群结构​编辑​编辑​编辑

(4)Redis是单线程的,为什么那么快?​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑


一、Redis的使用场景

二、缓存三大问题(穿透、击穿、雪崩)

(1)缓存穿透

(2)缓存击穿

1.互斥锁

 优点:保证数据的强一致性

 缺点: 性能差

2.逻辑过期 

 

 优点:保证数据的高可用性

 缺点: 性能优

 

(3)缓存雪崩

三、双写一致性

(1)一致要求高

问题 :先删除缓存,还是先修改数据库?

情况一:

当下一个线程查询时发现缓存中有数据时,会直接读取缓存中的数据,而此时缓存中的数据和数据库中的数据并不一致,会出现脏数据的现象。

情况二:

 当第一个线程查询完数据库时,获取到数据库中的数据(如结果是10),此时另一个线程完成了数据库的更新(结果20),并将缓存删除。第一个线程将查询到的数据写入到缓存当中。导致数据库与缓存的数据不一致。

因此,先删除后操作,先操作后删除,两种方式都会导致数据不一致。

 要保证强一致性,需要牺牲到一些性能如:

(2)允许延迟

四、Redis持久化

(1)RDB的执行原理

 (2)AOF

(3)RDB与AOF的对比

 五、数据过期策略

(1)惰性删除

(2)定期删除

 Redis的过期删除策略:惰性删除 + 定期删除 两种策略进行配合使用

六、数据过期策略

 七、Redis分布式锁

 在集群下无法满足需求,因此要引入分布式锁

Redisson实现的分布式锁

八、Redis的其他面试题

 (1)主从复制

 全量同步:

增量同步:

(2)哨兵模式

脑裂问题:出现了两个主节点

网络重连后,哨兵会将老的master强制降为slave,将原先的数据清空

(3)分片集群结构

(4)Redis是单线程的,为什么那么快?

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值