Redis为什么快
1、完全基于内存
2、数据结构简单,对数据操作也简单
3、使用单进程单线程处理请求,避免了不必要的CPU的切换、死锁问题及其他多进程多线程可能出现的问题。
4、使用多路I/O复用模型
Redis为什么是单线程的
因为Redis是基于内存的操作,CPU并不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。又由于单线程容易实现,所以就顺理成章地采用单线程的方案了。
单线程好处
1、代码更清晰,处理逻辑更简单
2、不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗
3、不存在多进程或者多线程导致的切换而消耗CPU
单线程弊端
无法发挥多核CPU性能(不过可以通过在多核的单机系统中开多个Redis实例来完善)
注意:
1、这里所说的单线程是指Redis在处理请求的时候是单线程的,Redis服务器端并不是单线程的,例如Redis在进行持久化的时候就会根据实际情况以子进程或子线程的方式来执行
2、Redis 4.0版本开始会在某一些操作上支持多线程的方式
参考资料: