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的性能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗