mirror of
https://github.com/doocs/advanced-java.git
synced 2024-12-28 04:10:08 +08:00
docs: update redis-single-thread-model.md
* close #82 * 更新 Redis 单线程模型描述,读者可以参考《Redis 设计与实现》进行系统学习。 * See https://github.com/doocs/technical-books#database
This commit is contained in:
parent
0e25ae885a
commit
275e2dd150
@ -45,10 +45,10 @@ redis 内部使用文件事件处理器 `file event handler`,这个文件事
|
||||
|
||||
如果此时客户端准备好接收返回结果了,那么 redis 中的 socket01 会产生一个 `AE_WRITABLE` 事件,同样压入队列中,事件分派器找到相关联的命令回复处理器,由命令回复处理器对 socket01 输入本次操作的一个结果,比如 `ok`,之后解除 socket01 的 `AE_WRITABLE` 事件与命令回复处理器的关联。
|
||||
|
||||
这样便完成了一次通信。
|
||||
这样便完成了一次通信。关于 Redis 的一次通信过程,推荐读者阅读《[Redis 设计与实现——黄健宏](https://github.com/doocs/technical-books#database)》进行系统学习。
|
||||
|
||||
### 为啥 redis 单线程模型也能效率这么高?
|
||||
- 纯内存操作。
|
||||
- 核心是基于非阻塞的 IO 多路复用机制。
|
||||
- C 语言实现,一般来说,C 语言实现的程序“距离”操作系统更近,执行速度相对会更快。
|
||||
- 单线程反而避免了多线程的频繁上下文切换问题,预防了多线程可能产生的竞争问题。
|
||||
- 单线程反而避免了多线程的频繁上下文切换问题,预防了多线程可能产生的竞争问题。
|
||||
|
Loading…
Reference in New Issue
Block a user