gpt4 book ai didi

multithreading - Redis如果是单线程的,怎么会这么快呢?

转载 作者:IT王子 更新时间:2023-10-29 06:09:34 25 4
gpt4 key购买 nike

我目前正在尝试了解 Redis 的一些基本实现。我知道 redis 是单线程的,我已经偶然发现了以下问题:Redis is single-threaded, then how does it do concurrent I/O?

但是我还是觉得我没理解对。 Afaik Redis 使用单线程 react 器模式。因此,如果我没有理解错的话,就会有一个观察者(处理 FD/传入/传出连接)将要完成的工作委托(delegate)给它注册的事件处理程序。他们做实际的工作并设置例如。他们的响应作为事件发送给观察者,观察者将响应传回给客户。但是,如果客户端的请求 (R1) 花费大约 1 分钟,会发生什么情况。另一个客户端创建另一个(快速)请求(R2)。然后 - 由于 Redis 是单线程的 - 在 R1 完成之前,R2 不能委托(delegate)给正确的处理程序,对吗?在多线程环境中,您可以在单个线程中启动每个处理程序,因此“主”线程只是接受和响应 io 连接,所有其他工作都在自己的线程中执行。

如果它真的只是排队 io 处理和处理程序逻辑,它永远不会像现在这样快。我在这里缺少什么?

最佳答案

除了 Redis 中的大多数操作在不到 ~ 毫秒~ 几微秒内完成这一事实之外,你不会错过任何东西。长时间运行的操作确实会在执行期间阻塞服务器。

关于multithreading - Redis如果是单线程的,怎么会这么快呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48035646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com