redis网络模型

用户空间与内核空间

对于用户空间,实质就是操作系统上安装的软件。我们通过操作这些软件通过操作系统(也就是内核空间)来操作硬件。

当要进行写操作读操作,实质就是在用户空间和内核空间各自的缓冲区数据的来回转换。

IO多路复用(作用:用来提高网路性能,因为redis是基于内存操作)

redis单线程 监听多个FD(文件描述符,也可以称为请求),当有FD可写可读时,就去执行文件,这样就避免了cpu过多的无效等待(实质是处理当前请求时阻塞,后续的请求也会阻塞。因为单线程处理

多路复用—— select

缺点:需要去遍历监听的FD,因为无法确定哪个FD可读可写。监听的数量有限,最多1024

多路复用—— poll

缺点:需要去遍历监听的FD,因为无法确定哪个FD可读可写,监听无上限(监听较多会影响效率,性能降低)。

多路复用—— epoll

该模式用 红黑树记录所有的监听FD,用链表记录 已经在红黑树中就绪的FD并返回,这样就可以不用让用户空间去遍历所有的FD。还可以减少重复的拷贝FD。

为什么redis单线程?

redis是一个纯内存操作,如果是多线程只会改变程序执行的速度,而对于内存的操作影响的原因是网络的延迟。并且多线程会有线程上下文的切换,也会带来不必要的开销

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值