栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

好吧,这取决于您如何定义并发。

在服务器端软件中,并发性和并行性通常被视为不同的概念。在服务器中,支持并发I /
O意味着服务器能够通过仅使用一个计算单元执行与那些客户端相对应的多个流来为多个客户端提供服务。在这种情况下,并行性意味着服务器能够同时执行多个操作(使用多个计算单元),这是不同的。

例如,调酒师能够照顾几个顾客,而一次只能准备一种饮料。因此,他可以在没有并行的情况下提供并发。

通过使用I / O(解复用)机制和事件循环(Redis所做的事情),单线程程序肯定可以在I / O级别上提供并发性。

并行性是有代价的:由于您可以在现代硬件上找到多个插槽/多个内核,因此线程之间的同步非常昂贵。另一方面,像Redis这样的高效存储引擎的瓶颈通常是网络,远早于CPU。因此,孤立的事件循环(不需要同步)被视为构建高效,可伸缩服务器的良好设计。

Redis操作是原子的这一事实完全是单线程事件循环的结果。有趣的一点是原子性是免费提供的(不需要同步)。用户可以利用它来实现乐观锁定和其他模式,而无需支付同步开销。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/373813.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号