Redis 6.0版本之前的单线程指的是其网络I/O和键值对读写是由一个线程完成的。
Redis6.0引入的多线程指的是网络请求过程采用了多线程,而键值对读写命令仍然是单线程处理的,所以Redis依然是并发安全的,也就是只有数据操作模块是单线程的,而其它的持久化、集群数据同步等,其实是由额外的线程执行的。
单线程的Redis为何还这么快
命令执行基于内存操作,一条命令在内存里操作的时间是几十纳秒
命令执行是单线程操作,没有线程切换开销
基于IO多路复用机制提升Redis的I/O利用率,linux(epoll)
高效的数据存储结构: 全局hash表以及多种高效数据结构,比如: 跳表,压缩列表,链表等等
跳表