一篇文章完全理解Redis为什么这么快

单线程架构

Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库.

为什么单线程还能这么快?

  1. 纯内存访问,Redis将所有数据放在内存中,内存的响应时长大约为100纳秒.

  2. 第二,非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间.

关于非阻塞I/O epoll 可以看这篇文章,对深入了解redis很重要:


3.单线程避免了线程切换和竞态产生的消耗。

单线程可以简化数据结构和算法的实现,并发数据结构实现不但困难而且开发测试比较麻烦.

单线程避免了线程切换和竞态产生的消耗,对于服务端开发来说,锁和线程切换通常是性能杀手。

但是单线程会有一个问题:对于每个命令的执行时间是有要求的。如果某个命令执行过长,会造成其他命令的塞,对于Redis这种高性能的服务来说是致命的,所以Redis是面向快速执行场景的数据库.

来自《Redis运维与开发》

你可能感兴趣的:(一篇文章完全理解Redis为什么这么快)