IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 后端开发【一大波有用知识】—Redis,Memcached,Nginx网络组件 -> 正文阅读

[系统运维]后端开发【一大波有用知识】—Redis,Memcached,Nginx网络组件

reator网络编程

epoll被称为事件管理器,利用管理器去管理多个连接。

int clientfd=accept(listenfd,addr,sz);
clientfd ==-1 && erro==EWOLDBLOCK //表示全连接中连接为空

int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
error == EINPROGRESS //正在建立连接
error == EISCONN  //连接建立成功       
  • 关闭读端 read = 0

  • 关闭写端 write = -1 && errno =EPIPE

  • io函数像read只能检测一个fd对应的状态,可以检测具体的状态。

  • io多路复用可以检测多个fd对应的状态,只能检测可读,可写,错误,断开笼统等信息。

  • getsockopt 也可以检测错误。

阻塞IO 和 非阻塞IO

  • 阻塞在网络线程

  • 连接的fd阻塞属性决定了io函数是否阻塞

  • 具体差异在:io函数在数据未到达时是否立刻返回。

//默认情况下,fd时阻塞的,设置非阻塞的方法如下:
int flag=fcntl(fd,F_GETFL,0);
fcntl(fd,F_SETFL,flag | O_NONBLOCK);

  • timeout == 0 是非阻塞效果,检测一下立即返回。

  • timeout == -1 是永久阻塞

  • timeout == 1000

?C++开发学习地址:C/C++Linux服务器开发高级架构师/Linux后台架构师?

想学习C++工程化、高性能及分布式、深入浅出。性能调优、TCP,协程,Nginx源码分析Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,Linux内核,P2P,K8S,Docker,TCP/IP,协程,DPDK 以下视频学习资料,有需要的可以点击:C++架构师学习资料 进去自取

?epoll_create 会去创建红黑树和就绪队列。

epoll_ctl 会去注册事件,会建立回调关系。当事件被触发,epoll_ctl 会将fd从红黑树中放到就绪队列。

?问:代码第9行能不能监听写事件?

答:不能,因为刚开始的时候,写缓冲区是空的,会被一直触发可写。

编程细节,返回值以及错误码

?读端关闭了。

?建议read()函数使用非阻塞io,因为出现错误会立刻返回,不会卡在这里影响别人。

?将数据写到缓冲区,协议栈会将数据发送到对端。

redis、nginx、memcached reactor具体使用

?redis-6.0支持IO多线程,封装在networking.cz中。

参考资料

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 23:07:00  更:2022-04-07 23:09:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:35:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码