Redis的核心操作是单线程的
- 核心操作主要包括网络IO和键值对读写,主要是为了保证Redis在处理客户端请求时的简单性和一致性,避免多线程情况下CPU频繁上下文切换带来额外的开销
- Redis利用队列技术将并发访问变为串行访问,多个客户端请求同时到达时,Redis会将这些请求放入队列中
Redis为什么性能高,速度快
- 他是基于内存进行操作的,而且是单线程模型,所以它能够提供非常高的吞吐量和低延迟。
- 采用了多种高效的数据结构,进一步降低了复杂度
- 使用了网络IO多路复用技术来同时处理多个客户端请求,使得能够更加利用系统资源,大大提高了并发量
- 非阻塞操作,Redis的所有操作都是非阻塞的,不会被其他线程阻塞
- 引入了多线程,例如持久化,在保存RDB快照时,会自动kork一个子进程去处理