Redis 单线程
文章目录
- Redis单线程架构
- Redis 单线程访问速度
- IO多路复用原理
Redis单线程架构
Redis的单线程架构的效果为:Redis的单线程是对于服务端而言的,Redis允许多个Redis用户端同时在线操作,但同时只有一个用户端在和服务端交互。多个用户同时发送请求一定不会同时执行。
Redis 单线程访问速度
通常来讲,单线程处理能⼒要⽐多线程差,那么为什么 Redis 使⽤单线程模型会达到每秒万级别的处理能⼒呢?可以将其归结为三点:
①纯内存访问。Redis 将所有数据放在内存中,内存的响应时⻓⼤约为 100 纳秒,这是 Redis 达
到每秒万级别访问的重要基础。
② ⾮阻塞 IO。Redis 使⽤ epoll 作为 I/O 多路复⽤技术的实现,再加上 Redis ⾃⾝的事件
处理模型将 epoll 中的连接、读写、关闭都转换为事件,不在⽹络 I/O 上浪费过多的时间
③ 单线程避免了线程切换和竞态产⽣的消耗。单线程可以简化数据结构和算法的实现,让程序模
型更简单;其次多线程避免了在线程竞争同⼀份共享数据时带来的切换和等待消耗。
IO多路复用原理
下图中最后一种即为 异步IO多路复用原理
下图不是epoll,但类似