星海

Redis · 单选题 · 第 41 题

Java 后端开发面试 · 第 41 题

Redis 处理请求速度快,下列哪一项不是原因?

  1. A数据主要存放在内存中,读写不需要访问磁盘
  2. B命令执行在单线程中完成,避免了锁竞争和切换
  3. C用 IO 多路复用让一个线程同时处理大量连接
  4. D所有命令都由多个线程并行执行,充分利用多核

答案

D D. 所有命令都由多个线程并行执行,充分利用多核

解析

Redis 的命令执行主线程是单线程的,内存操作加上精心设计的数据结构,再配合 epoll 等 IO 多路复用,使单实例能达到很高的 QPS。Redis 6 引入的多线程只用于网络读写和协议解析,命令本身仍然串行执行,所以单个命令是原子的。也因此要避免 KEYS * 这类耗时命令阻塞主线程。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。