We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 7b9ac13 commit 3d770eaCopy full SHA for 3d770ea
docs/database/Redis/Redis.md
@@ -54,6 +54,21 @@
54
55
使用 redis 或 memcached 之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。缺点是需要保持 redis 或 memcached服务的高可用,整个程序架构上较为复杂。
56
57
+### redis 的线程模型
58
+
59
+> 参考地址:https://www.javazhiyin.com/22943.html
60
61
+redis 内部使用文件事件处理器 `file event handler`,这个文件事件处理器是单线程的,所以 redis 才叫做单线程的模型。它采用 IO 多路复用机制同时监听多个 socket,根据 socket 上的事件来选择对应的事件处理器进行处理。
62
63
+文件事件处理器的结构包含 4 个部分:
64
65
+- 多个 socket
66
+- IO 多路复用程序
67
+- 文件事件分派器
68
+- 事件处理器(连接应答处理器、命令请求处理器、命令回复处理器)
69
70
+多个 socket 可能会并发产生不同的操作,每个操作对应不同的文件事件,但是 IO 多路复用程序会监听多个 socket,会将 socket 产生的事件放入队列中排队,事件分派器每次从队列中取出一个事件,把该事件交给对应的事件处理器进行处理。
71
72
73
### redis 和 memcached 的区别
74
0 commit comments