Redis 面试题集绵

问题1:Redis存取数据为什么快呢?

答:A. 完全基于内存操作;

  B. C语言实现,优化过的数据结构,基于几种基础的数据结构,redis做了大量的优化,性能极高;

  C. 使用单线程,无上下文的切换成本;

  D. 基于非阻塞的IO多路复用机制。

 

问题2:如何保证Redis高可用和高并发?

答:A. Redis主从架构,一主多从,搭配哨兵机制;

  B. 出现实例宕机自动进行主备切换,配置读写分离缓解Master压力。

 

问题3:由于主从延迟导致读取到过期数据怎么处理?

答:A. 通过scan命令扫库:当Redis中的key被scan的时候,相当于访问了该key,同样也会做过期检测,充分发挥Redis惰性删除的策略。这个方法能大大降低了脏数据读取的概率,但缺点也比较明显,会造成一定的数据库压力,进而影响线上的业务的效率;

  B. Redis加入了一个新特性来解决主从不一致导致读取到过期数据问题,增加了key是否过期以及对主从库的判断,如果key已过期,当前访问的master则返回null,若当前访问的是从库,且执行的是只读命令也返回null。

 

问题4:为什么Redis6.0之后改用了多线程?

答:A. Redis使用多线程并非是完全摒弃单线程,Redis还是使用单线程模型来处理客户端的请求,只是使用多线程来处理数据的读写和协议解析,执行命令还是使用单线程;

  B. 目的是因为Redis的性能瓶颈在于网络IO而非CPU,使用多线程能提升IO读写的效率,从而整体提高Redis的性能。

 

可参考:关于Redis,你扛得住这夺命连环11问吗

    史上最全50到Redis面试题

posted @   如幻行云  阅读(138)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示