1、redis是基于内存来存储的,然而内存的读取/响应市场大约为100纳秒,这一点也就是redis能打到每秒万级的重要基础。
2、非阻塞I/O,redis使用epoll作为I/O多路复用技术的实现,再加上redis的自身的时间处理模型将epoll中的连接,读写,关闭都转换为事件,不在网络I/O上浪费时间
3、单线程避免了线程切换和竟态产生的消耗。
单线程带来的好处及问题
单线程带来的好处:
1、单线程可以简化数据结构和算法的实现
2、单线程避免了线程切换和竟态产生的消耗,对于服务端来说,锁和线程切换通常是性能杀手。
单线程的问题:对于每个命令的执行时间是有要求的。(如果某个命令执行时间过长,就会造成其他命令的阻塞,对于redis这种高性能服务来说是致命的。所以redis是面向快速执行场景的数据库)