Redis为什么单线程能够支持高并发

Redis官方仅提供Linux版本,利用NIO的多路IO复用机制实现高并发与线程安全。在Linux中,epoll事件驱动通知形式提升性能,支持大量TCP连接,而在Windows上效率较低。因此,Redis的高性能主要得益于Linux的epoll机制。
摘要由CSDN通过智能技术生成

将自己进大厂前花2万多买的Python教程,整整370集,少走99%的弯路,免费分享给大家~拿走不谢!学不会退出IT界!_哔哩哔哩_bilibili

a、首先Redis官方网站是没有windows版本的,只有linux版本的redis

b、redis的底层是采用NIO的多路IO复用机制实现对不同的tcp链接实现io复用,能否非常好的支持高并发,同事能够先天性支持线程安全问题。
--多路IO复用机制:使用一个线程维护多个不同的IO操作,原理是使用Nio的选择器,将多个不同的Channel(TCP通道)统一交给我们的Selector选择器管理,减少了资源的浪费

c、NIO在不同的操作系统上实现方式是不同的
Windows系统使用Selector实现轮询机制,时间复杂度为O(n),而且还存在空轮询的情况,效率非常低;其次是默认对我们的轮询数据有一定限制1024,所以支持上万TCP链接非常难。
Linux操作系统采用epoll实现事件驱动通知形式,不会存在空轮训的情况,只对活跃的socket链接实现主动回调,在性能上有大大的提升,事件复杂度为O(1)
所以nginx支持5W的并发量,以及Redis能够有非常高的并发量,都是使用了Linux中的IO多路复用机制epoll。



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值