一篇文章完全理解Redis为什么这么快
2019-09-18 本文已影响0人
先生zeng
单线程架构
Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库.
为什么单线程还能这么快?
-
纯内存访问,Redis将所有数据放在内存中,内存的响应时长大约为100纳秒.
-
第二,非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间.
关于非阻塞I/O epoll 可以看这篇文章,对深入了解redis很重要:
3.单线程避免了线程切换和竞态产生的消耗。
单线程可以简化数据结构和算法的实现,并发数据结构实现不但困难而且开发测试比较麻烦.
单线程避免了线程切换和竞态产生的消耗,对于服务端开发来说,锁和线程切换通常是性能杀手。
但是单线程会有一个问题:对于每个命令的执行时间是有要求的。如果某个命令执行过长,会造成其他命令的塞,对于Redis这种高性能的服务来说是致命的,所以Redis是面向快速执行场景的数据库.
来自《Redis运维与开发》