在深入理解select、poll和epoll之间的区别之前,首先要了解什么是IO多路复用模型。 ###IO多路复用 简单来说,IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备就绪,它就通知该进程去进行IO操作。 详细的描述可以参考IO模型。select、poll和epoll都是提供I/ ...
分类:
其他好文 时间:
2020-07-12 14:45:18
阅读次数:
86
redis之所以可以高效的执行命令,单线程每秒qps达到10w左右,是因为起io多路复用技术效率很高。 io多路复用解决了什么问题? 没有io多路复用,那么当服务器操作某一个fd执行read的时候,如果fd对应的客户端没有执行写操作,那么服务端就会阻塞,这个时候客户端2来了数据,服务端就没办法读取了 ...
分类:
其他好文 时间:
2020-05-24 10:13:55
阅读次数:
43
单线程和高性能 数据都在内存中,运算基于内存而不是磁盘,快速; 单线程,避免了多线程频繁切换带来的性能损耗; 单线程如何处理高并发连接: 多路复用:利用epoll来实现io多路复用。 多路复用 注意点: 1.尽量避免使用key命令。比如redis存有上百万条数据,redis读取一般10w/s,起码也 ...
分类:
其他好文 时间:
2020-05-04 21:44:58
阅读次数:
65
1、Nginx是什么: Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务。 2、常见的HTTP服务: HTTPD(Apache基金会);IIS(微软);GWS(Google),目前Nginx市场占有率越来越大。 3、Nginx优势:IO多路复用;轻量级;CPU亲和;sendfile工作机 ...
分类:
其他好文 时间:
2020-05-01 13:03:47
阅读次数:
64
IO模型简介 """ 我们这里研究的IO模型都是针对网络IO的 Stevens在文章中一共比较了五种IO Model: * blocking IO 阻塞IO * nonblocking IO 非阻塞IO * IO multiplexing IO多路复用 * signal driven IO 信号驱动 ...
分类:
其他好文 时间:
2020-04-28 16:50:26
阅读次数:
53
es使用netty来通信,实现分布式的功能,但在某些场景会oom。 1:netty概述IO 多路复用NioEventLoop.run select由jdk实现在win下使用select,在linux下使用epoll。linux下也可以使用netty实现的epoll:EpollEventLoop。 线 ...
分类:
Web程序 时间:
2020-04-15 11:08:07
阅读次数:
125
文件事件处理器 Redis基于Reactor模式开发了网络事件处理器,这个处理器叫做文件事件处理器 file event handler。这个文件事件处理器,它是单线程的,所以 Redis 才叫做单线程的模型,它采用IO多路复用机制来同时监听多个Socket,根据Socket上的事件类型来选择对应的 ...
分类:
编程语言 时间:
2020-04-12 16:31:27
阅读次数:
67
关于Python程序的运行性能方面, 有什么手段能提升性能? 1、对于性能影响较大的部分代码,可以使用C或C++编写 2、对于IO阻塞造成的性能影响,可以使用IO多路复用来解决 3、尽量使用python的内建函数 4、尽量使用局部变量 python不支持的数据类型有 A. char B. int C ...
分类:
其他好文 时间:
2020-04-05 00:37:50
阅读次数:
61
作为一名程序员,io知识是必不可少,其实一直在和io打交道,要么显示要么隐含给了操作系统,故做下关于io的记录。说io之前呢,先介绍什么叫同步异步丶阻塞非阻塞 1. 同步异步丶阻塞非阻塞 1.1 同步是指发出一个请求,在没有得到结果之前该请求就不返回结果,请求返回时,也就得到结果了。比如我经常用烧水 ...
分类:
编程语言 时间:
2020-04-04 09:54:12
阅读次数:
75
学习自《Redis开发与运维(付磊)》 [TOC] 简介 Redis是一种基于键值对(key value)的NoSQL数据库。 特性 1. 速度快 Redis的数据都存放在内存中,代码通过C语言实现,使用了单线程的IO多路复用机制,这些都使得redis的读写速度非常快。 2. 基于键值对的数据结构服 ...
分类:
其他好文 时间:
2020-03-30 21:52:13
阅读次数:
74