1.Redis使用单线程为什么这么快
- 完全是基于c语言用内存运行的
- 单线程避免上下文的切换,避免加锁
- 采用IO多路复用和非阻塞IO
2.Redis多路复用的原理
I/O多路复用就是一个线程来处理多个socket,并在某个socket可读,可写的时候得到通知,从而避免的无效的等待,充分利用了cpu资源。目前I/O多路复用是都是采用epoll模式来实现的,它会在通知用户进程socket就绪的同时,把已就绪的socket写入用户空间,不需要挨个遍历socket来判断是否就绪,提升了性能
- 完全是基于c语言用内存运行的
- 单线程避免上下文的切换,避免加锁
- 采用IO多路复用和非阻塞IO
2.Redis多路复用的原理
I/O多路复用就是一个线程来处理多个socket,并在某个socket可读,可写的时候得到通知,从而避免的无效的等待,充分利用了cpu资源。目前I/O多路复用是都是采用epoll模式来实现的,它会在通知用户进程socket就绪的同时,把已就绪的socket写入用户空间,不需要挨个遍历socket来判断是否就绪,提升了性能