229 字
1 分钟
面试鸭-为什么 Redis 设计为单线程?6.0 版本为何引入多线程?
为什么 Redis 设计为单线程?6.0 版本为何引入多线程?
Redis不用多线程去执行命令的原因是 获取数据时它的瓶颈不在于CPU,也就是改成多线程并不会更快,并且还增加了复杂度,使用单线程+IO多路复用反而会更快。 而6.0引入多线程主要也不是因为CPU性能不够,而是因为网络IO速度跟不上。引入多线程只是把网络请求读取和写回用上了多线程,实际执行命令还是单独的主线程。这样在提高速度的同时,还不用担心线程安全的问题。
4.0之前,Redis是纯单线程模型。 4.0引入了几个后台线程用来持久化部分数据 6.0开始引入多线程来实现网络IO的并发读和并发写。
问题
面试鸭-为什么 Redis 设计为单线程?6.0 版本为何引入多线程?
http://www.shineacz.top/posts/面试鸭-为什么-redis-设计为单线程60-版本为何引入多线程/