首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >redis6.0新特性里面,多线程IO是如何执行命令的?

redis6.0新特性里面,多线程IO是如何执行命令的?

提问于 2020-08-10 15:52:36
回答 1关注 0查看 630

redis6.0添加了IO多线程,个人理解的流程如下

1 创建el

2 创建监听socket,设置回调函数为acceptTcpHandler,这个回调函数的处理逻辑为:有连接请求的时候就接收并新建socket加入到el中去,并设置回调函数为connSocketEventHandler(如果是读事件,这个函数最终还是调用readQueryFromClient

3 把创建的监听socket添加到关注的事件中去

4 创建IO多线程,设置线程入口函数为IOThreadMain,如果是读事件每个线程处理自己的任务队列的时候,调用的是readQueryFromClient

5 beforesleep函数把任务分配给各个IO线程,等待各个线程执行完毕,然后自己的也执行完毕

6 在aemain事件循环中,获取当前可读事件个数,逐个去执行回调函数。

我的疑问是:

IO线程也是执行readQueryFromClient函数,主线程调用回调的时候本质也是执行readQueryFromClient,那么redis就会有执行命令的时候线程切换的问题,但是执行命令的时候又好像是只有主线程在执行,如果只有主线程执行的话,readQueryFromClient这个函数哪里做了判断?

回答 1

学生

发布于 2020-08-11 08:34:49

您好,上述问题需要您提供更多信息去跟进,建议提交工单为您处理。

和开发者交流更多问题细节吧,去 写回答
相关文章
Redis6.0使用了多线程还能保证线程安全么?-Redis6.0 多线程精讲
有很多同学就有疑问了,既然官方都表示CPU不是Redis的性能瓶颈,那么为什么还要引入多线程呢?虽然单线程有很多优点,但对应的也必然会有一些缺点存在:
AI码师
2022/12/22
7310
Redis6.0使用了多线程还能保证线程安全么?-Redis6.0 多线程精讲
Redis 6.0 新特性-多线程连环13问!
在全国一片祥和IT民工欢度五一节假日的时候,Redis 6.0不声不响地于5 月 2 日正式发布了,吓得我赶紧从床上爬起来,学无止境!学无止境!
牧码哥
2020/05/06
2.5K0
Redis 6.0 新特性-多线程连环13问!
面试不怂之Redis与缓存大全-基础篇
答:Redis是一种Key-Value的模型,key是字符串类型,而常说的数据结构一般是指value的数据结构,一般包含以下类型。
公众号: 云原生生态圈
2022/04/08
6920
面试不怂之Redis与缓存大全-基础篇
Redis为什么这么快?Redis是单线程还是多线程?
Redis是基于内存运行的高性能 K-V 数据库,官方提供的测试报告是单机可以支持约10w/s的QPS
全栈程序员站长
2022/06/29
1K0
Redis为什么这么快?Redis是单线程还是多线程?
Redis内存模型
这里强调的单线程是指网络请求模块使用一个线程来处理,即一个线程处理所有网络请求,其他模块仍用多个线程。
CodingCode
2021/05/30
9580
Redis内存模型
一起看 I/O | Jetpack 组件的新特性
作者 / Amanda Alexander, Product Manager, Android
Android 开发者
2022/09/01
3.6K0
一起看 I/O | Jetpack 组件的新特性
【Redis破障之路】三:Redis单线程架构
众所周知,Redis是一个单线程架构的NoSQL数据库,但是是单线程模型的Redis为什么性能如此之高?这就是我们接下来要探究学习的内容。 1、Redis的单线程架构 1.1、Redis单线程简介 首
三分恶
2021/04/28
8550
【Redis破障之路】三:Redis单线程架构
Python 简单的多线程执行命令
Tools.py #!/usr/bin/python #coding:utf-8 import threading import subprocess import os import sys sshport = 13131 log_path = 'update_log' output = {} def execute(s, ip, cmd, log_path_today): with s: cmd = '''ssh -p%s root@%s -n "%s" ''' %
py3study
2020/01/08
1.8K0
Redis 新特性篇:多线程模型解读
Redis 官方在 2020 年 5 月正式推出 6.0 版本,提供很多振奋人心的新特性,所以备受关注。
码哥字节
2021/07/27
3630
Redis 新特性篇:多线程模型解读
Redis 官方在 2020 年 5 月正式推出 6.0 版本,提供很多振奋人心的新特性,所以备受关注。
乔戈里
2021/07/27
5910
Redis 新特性篇:多线程模型解读
Python 如何移除旧的版本特性,如何迎接新的特性?
2020 年 4 月 20 日,Python 2 的最后一个版本 2.7.18 发布了,这意味着 Python 2 是真正的 EOL(end of life)了,一个时代终于落幕了。
Python猫
2020/04/26
9710
程序员过关斩将--请不要误会redis 6.0 的多线程
redis官方刚刚发布的6.0版本已经掀起了业界一阵热波,在这个版本中新加了很多新特性,如果你打开redis的官网,可以看到6.0现在已经是稳定版本了。
架构师修行之路
2020/12/31
5370
一起看 I/O | Jetpack Compose 中的新特性
Jetpack Compose 1.0 正式版已经发布快一年的时间了,我们看到社区正以极大的热情采纳和使用 Compose: Kotlin 语法的简洁性以及使开发界面变得更快速、更简单的声明式开发方式得到了广大开发者们的赞赏。
Android 开发者
2022/09/01
2.5K0
一起看 I/O | Jetpack Compose 中的新特性
[译]PostgreSQL16-新特性-新增IO统计视图:pg_stat_io
获取PG服务产生的所有IO情况历来都是一个挑战。首先,PG将IO行为范围内为写WAL和读写数据目录(也就是数据文件)。真正的挑战是:理解围绕写入的二阶效应:通常数据的写入发生在事务提交后,即异步刷写,这就对理解哪个进程实际写入数据目录(以及何时)带来困难。
yzsDBA
2023/02/26
1.2K0
[译]PostgreSQL16-新特性-新增IO统计视图:pg_stat_io
我是如何通过阿里面试的?
笔者参加18年阿里春招,有幸最终拿到阿里offer,base杭州,岗位客户端开发。一直忙于其他事情,拿到意向已经过去十多天,在此分享一些关于面试的干货,攒一波RP,回馈社会。 从阿里面试说起,阿里的面试一般采用电话面试的形式。笔者一共参加五轮面试,一面电话面试+在线编程,二面视频面试+在线编程,三面部门boss面试,四面交叉面,五面HR。在此分享五轮面试的大概问题吧,笔者是android岗开发,所问题型会更偏android。 一面 阿里的面试官都很和蔼。一面面试官听声音感觉应该是入职两三年的感觉。上来自我
用户1269200
2018/06/22
2.3K0
Java I/O底层是如何工作的?
缓冲与缓冲的处理方式,是所有I/O操作的基础。术语“输入、输出”只对数据移入和移出缓存有意义。任何时候都要把它记在心中。通常,进程执行操作系统的I/O请求包括数据从缓冲区排出(写操作)和数据填充缓冲区(读操作)。这就是I/O的整体概念。在操作系统内部执行这些传输操作的机制可以非常复杂,但从概念上讲非常简单。我们将在文中用一小部分来讨论它。
哲洛不闹
2018/09/19
7370
Java I/O底层是如何工作的?
Java I/O底层是如何工作的?
本博文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解Java I/O操作是在机器层面如何进行映射,以及应用运行时硬件都做了什么。假定你熟悉基本的I/O操作,比如通过Java I/O API读写文件。这些内容不在本文的讨论范围。
哲洛不闹
2018/09/19
8840
Java I/O底层是如何工作的?
Java I/O底层是如何工作的?
本博文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解Java I/O操作是在机器层面如何进行映射,以及应用运行时硬件都做了什么。 假定你熟悉基本的I/O操作,比如通过Java I/O API读写文件。这些内容不在本文的讨论范围。 缓存处理和内核vs用户空间 缓冲与缓冲的处理方式,是所有I/O操作的基础。术语“输入、输出”只对数据移入和移出缓存有意义。任何时候都要把它记在心中。 通常,进程执行操作系统的I/O请求包括数据从缓冲区排出(写操作)和数据填充缓冲区(读操作)。这就是I/O的整体概念
用户1263954
2018/01/30
1.3K0
Java I/O底层是如何工作的?
Redis线程模型
Redis是一个开源的远程内存型数据库(Remote Dictionary Server(远程字典服务器)),它不仅性能强劲,而且提供了5 种不同类型的数据结构,我们项目实践中可能会遇到的大部分问题都可以很自然地映射到这些数据结构上。除此之外,Redis通过复制、持久化(persistence)、Redis Sentinel、客户端分片(client-side sharding)等特性,让用户可以很方便地将Redis 扩展成一个高可用能够包含数百GB 数据、每秒处理上百万次请求的系统。
加多
2021/11/24
9190
Redis线程模型
点击加载更多

相似问题

微搭里面,如何 让组件 radiobutton组 水平排列,目前是上下的竖行排列,样式属性里面?

0124

idea里面import io.qameta.allure.Allure;无法导入怎么解决?

0109

为什么我的金融服务里面的云支付是404?

0114

nginx双向配置里面的证书是SSL证书嘛?

2462

js 传递的参数值是个链接,链接里面有个问号?

1557
交个朋友
加入[数据] 腾讯云技术交流站
获取数据实战干货 共享技术经验心得
加入数据技术工作实战群
获取实战干货 交流技术经验
加入[数据库] 腾讯云官方技术交流站
数据库问题秒解答 分享实践经验
换一批
相关问答用户
腾讯 | 高级工程师擅长3个领域
腾讯科技 | 游戏行业解决方案总监擅长2个领域
腾讯 | 高级工程师擅长4个领域
腾讯 | 高级工程师
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档