Redis缓存知识点汇总

Redis缓存知识点汇总

请先思考如下问题
1.Redis的缓存击穿,穿透,雪崩是什么意思?原因和解决方案有哪些?
2.Redis支持宕机数据恢复,他的持久化方式及其原理是什么?
3.如何保证双写一致性,即如何保证Redis缓存与数据库的数据一致性?
4.Redis如何实现缓存过期删除?淘汰策略都有哪些?
5.Redis如何实现分布式锁,可重入锁?锁超时,但是业务还没执行完怎么办?
6.Redisson的看门狗机制?
7.Redis为什么那么快?单线程,多路复用?为什么不使用多线程。

1.缓存穿透

原因:Redis缓存穿透是指在高并发场景下,大量请求同时查询一个不存在的数据,这些请求会直接穿透Redis缓存,进而查询数据库,导致数据库压力过大,甚至可能崩溃。这种情况通常发生在缓存中没有命中数据,而数据库中也没有对应的数据,属于恶意访问场景。
解决
1.布隆过滤器:使用布隆过滤器来预先判断数据库是否存在相应的数据。
2.缓存空值:查询结果后若数据库没有值,则缓存空值到redis中,就不会击穿到数据库中。

布隆过滤器: 布隆过滤器的工作原理基于以下几个步骤:
初始化
创建一个大小为m的位数组,初始时所有位都设置为0。同时选择多个不同的哈希函数,这些哈希函数可以将元素映射到位数组中的一个位置。
插入元素
当要插入一个元素时,使用这k个哈希函数计算出k个不同的位位置,并将这些位置的值设置为1。
查询元素
当要查询一个元素是否在集合中时,同样使用这k个哈希函数计算出k个位位置,检查这些位置是否都为1。如果所有位置都为1,则认为元素可能在集合中;如果任一位置为0,则元素一定不在集合中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值