Redis · 单选题 · 第 41 题
Java 后端开发面试 · 第 41 题
Redis 处理请求速度快,下列哪一项不是原因?
- A数据主要存放在内存中,读写不需要访问磁盘
- B命令执行在单线程中完成,避免了锁竞争和切换
- C用 IO 多路复用让一个线程同时处理大量连接
- D所有命令都由多个线程并行执行,充分利用多核
答案
D D. 所有命令都由多个线程并行执行,充分利用多核
解析
Redis 的命令执行主线程是单线程的,内存操作加上精心设计的数据结构,再配合 epoll 等 IO 多路复用,使单实例能达到很高的 QPS。Redis 6 引入的多线程只用于网络读写和协议解析,命令本身仍然串行执行,所以单个命令是原子的。也因此要避免 KEYS * 这类耗时命令阻塞主线程。