为了账号安全,请及时绑定邮箱和手机立即绑定

Redis是单线程的,那么它是如何进行并发I / O的呢?

Redis是单线程的,那么它是如何进行并发I / O的呢?

SMILET 2019-09-18 15:01:38
试图掌握Redis的一些基础知识我遇到了一篇有趣的博客文章。作者说:Redis是带有epoll / kqueue的单线程,并且在I / O并发方面无限缩放。我肯定误解了整个线程,因为我发现这个说法令人费解。如果程序是单线程的,它如何同时执行任何操作?如果服务器是单线程的话,为什么Redis操作是原子的呢?有人可以就这个问题说清楚吗?
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

好的,Redis是用户级别的单线程OTOH,内核线程池和/或分层驱动程序支持所有异步I / O.

对于某些人来说,“ 并发 ”包括将网络事件分发到套接字状态机。它是单线程的,在一个核心上运行(在用户级别),因此我不会将其称为并发。其他人不同..

“ 在I / O并发性方面无限扩展 ”只是对事实是经济的。他们可能会更加相信,如果他们说'可以比每个客户一个线程更好地扩展,只要客户不要求太多',尽管他们可能会觉得有必要添加'被其他异步解决方案重载在用户级使用所有核心'。


查看完整回答
反对 回复 2019-09-18
  • 2 回答
  • 0 关注
  • 861 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信