北京 网站建设 知乎,上海公司买新能源车,服务器与网站吗,网站建设目标面试的时候#xff0c; 面试官问#xff0c;redis是单线程还是多线程 答#xff1a;单线程 面试官再问#xff0c;单线程#xff0c;为什么还快呢#xff1f;不应该是多线程才更快吗#xff1f;那这是不是有什么矛盾啊#xff1f; 答#xff1a;啊#xff1f;#x…面试的时候 面试官问redis是单线程还是多线程 答单线程 面试官再问单线程为什么还快呢不应该是多线程才更快吗那这是不是有什么矛盾啊 答啊。。。。。。心里卧槽就是单线程所以快啊还说多线程什么事难道是我哪块的知识点出了问题了
对这是一次真实的面试没想到快被用烂的redis竟然让人这样问住了其实道理我知道但一时突然语塞真不知道怎么解释好其实是一个坑。
以下是复盘的回答
redis是单线程的是因为redis是基于内存的所以他的性能和cpu没有关系而是和内存大小与带宽有关所以既然和cpu没什么关系那使用单线程就比多线程好多了最明显的一点就是不用担心多线程的锁的问题了而且如果觉得对于多核的c pu来说单线程是不是有点让其他核闲置了那么这其实就是另外一个问题了我们完全可以起多个redis进程比如4核就起4个redis进程由于redis是key-value型数据库数据之间不像关系型数据库那样有约束只要客户端能分清哪些进程上存放哪些key就可以了。