一篇文章彻底理解Redis为何这么快

单线程架构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是面向快速执行场景的数据库.数据结构和算法

相关文章
相关标签/搜索