文章预览
Redis 所谓的单线程并不是所有工作都是只有一个线程在执行,而是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,Redis 在处理客户端的请求时包括获取 (socket 读)、解析、执行、内容返回 (socket 写) 等都由一个顺序串行的主线程处理。 这就是所谓的“ 单线程 ”。这也是 Redis 对外提供键值存储服务的主要流程。 由于 Redis 在处理命令的时候是单线程作业的,所以会有一个 Socket 队列,每一个到达的服务端命令来了之后都不会马上被执行,而是进入队列,然后被线程的事件分发器逐个执行。如下图: 至于 Redis 的其他功能, 比如持久化、异步删除、集群数据同步等等,其实是由额外的线程执行的。 可以这么说,Redis 工作线程是单线程的。但是在 4.0 之后,对于整个 Redis 服务来说,还是多线程运作的。 6.0 之前为什么要使用单线程 在使用 Redis
………………………………