2.2.2 redis、memcached、nginx 网络组件

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 网络编程关注的问题连接建立连接断开消息到达
  1. 网络编程关注的问题
  2. 连接建立
  3. 连接断开
  4. 消息到达
  5. 消息发送
  6. 网络io职责
  7. 操作io
  8. 读写缓冲区


再次回顾用户空间和内核空间,并回忆中级调度

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


  • 检测io
  1. reactor

io多路复用

  • 用来检测IO
  • 非阻塞 io
  • 只用来操作IO
  • reactor 是异步事件吗?
  • 是,它里面 针对io 的处理是 异步回调的方式。
  • reactor为什么搭非阻塞io? (由三方面讨论)
  1. 多线程环境


  1. 将一个listenfd放到多个epoll去处理


2.边缘触发下

  1. 读事件触发时,read在一次事件循环中把read buffer读空

select bug

97da6f9479294db2f41b72ade25ec5f9_99df04d10bf448d88e91e470af0d1840.png

1:01:00

man select

是不是i0多路复用一定要搭配非阻塞0?

  1. redis
  2. 环境
  3. key-value
  4. 多种 数据结构
  5. 内存数据库
  6. 命令处理是单线程的。

为什么? 1:21:20

  1. 并不是整体是单线程,
  2. 为什么要使用 单reactor
  3. redis 怎么处理的 reactor
  4. redis 针对 reactor 做了哪些优化
  5. memcached

nginx

同步IO

操作IO

6ee9c85d6c968631e0d9b812ce56a9a1_1f2be83773a74082941075cf0ce5d5cb.png

4fad032efbc3d00fb7cd753d0681acfa_fd35f1aa5a8d4c6e8cd3d257ecda544f.png

1.accept 函数的 作用:

操作什么?

检测什么?

2.连接的断开

1.主动

  1. close
  2. 关闭双方
  3. 清理资源
  4. shutdown
  5. 关闭单方面

2.被动

  1. read = 0;读端关闭
  2. write = -1 && errno = EPIPE;写端关闭 (EPIPE 代表写端关闭,这个在哪里说明/定义 的?)
  3. 引出服务器的半关闭状态。 联系上文的shutdown 分析。

3.连接到达

  1. read
  2. 操作什么?
  3. 检测什么?

4.消息发送

  1. write
  2. 操作什么?
  3. 检测什么?

检测IO

a23cb52cc193d832105c281594bc6458_5e23f5e94e0346f18d837568141d29d7.png

  1. 链接建立时候,主动连接时,怎么监听写事件? 谁来监听? 谁来写? 写什么饿?给谁写?
  2. IO多路复用时,是怎么检测的?过程是怎么样的? 怎么和握手流程结合?
  3. epoll 38:00

  4. 是一种系统调用方式,实现的是IO 多路复用
  5. epoll IO多路复用,是没有阻塞、非阻塞之说。


  1. 如何证明: epoll_wait()函数, 最后一个参数 timeOut 的填值,-1 时阻塞, 44:00
  2. 由 connect 这个 IO函数,的检测 方式, 扩展 epoll 、select、poll 的检测方式这两种大类型的不同?


  1. errnumber
  2. 检测详细的事件,检测模糊的事件。
  3. 惊群:
  4. 边缘触发:

水平触发:

538ab89b988202cbdb74bc271338ee93_7f7d41bf14214aa2a0ee3c886a633ee8.png

服务器高级架构体系:https://xxetb.xet.tech/s/4DEnTI

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3月前
|
NoSQL 网络协议 Linux
Redis的实现一:c、c++的网络通信编程技术,先实现server和client的通信
本文介绍了使用C/C++进行网络通信编程的基础知识,包括创建socket、设置套接字选项、绑定地址、监听连接以及循环接受和处理客户端请求的基本步骤。
65 6
|
4月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
3月前
|
NoSQL 网络协议 应用服务中间件
redis,memcached,nginx网络组件
redis,memcached,nginx网络组件
25 0
|
3月前
|
存储 监控 NoSQL
Redis的实现二: c、c++的网络通信编程技术,让服务器处理多个client
本文讨论了在C/C++中实现服务器处理多个客户端的技术,重点介绍了事件循环和非阻塞IO的概念,以及如何在Linux上使用epoll来高效地监控和管理多个文件描述符。
42 0
|
5月前
|
存储 NoSQL Redis
pyhon之对memcached及redis操作
pyhon之对memcached及redis操作
|
5月前
|
缓存 负载均衡 NoSQL
【Azure Redis】Azure Redis添加了内部虚拟网络后,其他区域的主机通过虚拟网络对等互连访问失败
【Azure Redis】Azure Redis添加了内部虚拟网络后,其他区域的主机通过虚拟网络对等互连访问失败
|
5月前
|
缓存 NoSQL Java
【Azure Redis 缓存】定位Java Spring Boot 使用 Jedis 或 Lettuce 无法连接到 Redis的网络连通性步骤
【Azure Redis 缓存】定位Java Spring Boot 使用 Jedis 或 Lettuce 无法连接到 Redis的网络连通性步骤
|
5月前
|
存储 缓存 NoSQL
【Azure Redis 缓存】Azure Cache for Redis 专用终结点, 虚拟网络, 公网访问链路
【Azure Redis 缓存】Azure Cache for Redis 专用终结点, 虚拟网络, 公网访问链路
|
23天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
62 17
|
1月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
下一篇
开通oss服务