【20221117每日面经】 中间件-redis击穿、穿透区别,如何设计用例及测试

每日面经(极为经典,面试必考)

  • 考察点:中间件的测试方法
  • 难度: 较难
  • 题目:中间件-redis击穿、穿透区别,如何设计用例以及完成测试?

ps:每周一公布上周所有题目答案

3 Likes

:joy: 没人回复吗

击穿是某一个key多个并发在同一时间缓存过期,导致同一时间对数据库发起请求,从而使数据库崩溃
穿透是使用不存在的key访问系统,这样就不会过缓存,直接访问数据库

用例完整的考虑不到
1.击穿:服务器设置一个key,客户端发起并发,达到x数量后,将此key设置为过期,查看数据库不崩
2.穿透:找一个服务器内没有的key,发起请示,查看返回,需要做防护,返回对应的提示

redis穿透是指redis中没有key,数据库中也没有数据,指查询一个不存在的数据
redis缓存击穿:高并发请求redis缓存中没有数据,但DB有的数据(一般是缓存时间到期),引起DB压力瞬间增大,造成过大压力

区别是:穿透是数据库和缓存都没有数据,击穿是由于缓存数据过期,但是数据库有数据。

用例设计:
1.击穿:在大量并发下,一个key过期,观察下是否会崩,另外还可以看下,是否设计”永久“不过期;
2.穿透:模拟不断生产数据库及缓存中均不存在的key,进行查询,看下是否做相应处理,防止恶意攻击

答:
不好意思,redis 相关问题我不熟悉,这题我不会。下一题 :grimacing:

7 Likes