简介
Redis使用单线程架构和I/0多路复用模型来实现高性能的内存数据库服务
单线程模型介绍
Redis单线程的优势
- Redis是基于内存的,数据都存放在内存中,访问速度极快,这是Redis达到每秒万级别访问的重要基础
- 非阻塞的I/O,Redis使用epoll作为I/O多路复用技术的实现,加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换成事件,不在网络I/O上浪费过多的时间
- 单线程避免了线程切换和竞态产生的消耗,对于服务端来说,锁和线程切换通常是性能杀手
- 单线程可以简化数据结构和算法的实现,并发数据结构实现困难而且测试麻烦,
单线程的缺点
对于每个命令的执行时间有要求,如果某个命令执行时间过长,会造成其他命令阻塞,对于Redis这种高性能的服务来说是致命的,Redis是面向快速执行场景的数据库。