一篇文章完全理解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运维与开发》

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容