前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >redis6.4 多线程

redis6.4 多线程

原创
作者头像
乐事
修改于 2020-08-10 06:36:48
修改于 2020-08-10 06:36:48
4250
举报
文章被收录于专栏:日常笔记日常笔记

resid要处理命令,则redis必须完整地接收客户端的请求,并将命令解析出来,再将结果读出来,通过网络回写到客户端。整个工序分为以下几个部分:

  • 接收。通过TCP接收到命令,可能会历经多次TCP包、ack、IO操作
  • 解析。将命令取出来
  • 执行。到对应的地方将value读出来
  • 返回。将value通过TCP返回给客户端,如果value较大,则IO负荷会更重

异步的效率更高,要实现高并发必须要异步,因为同步有太多时间浪费在等待上了,遇到网络不好的客户端直接就被拖垮。异步的策略简单可总结如下:

  • 网络包有数据了,就去读一下放到缓冲区,读完立马切到其他事情上,不等下一个包
  • 解析下缓冲区数据是否完整。如完整则执行命令,不完整切到其他事情上
  • 数据完整了,立即执行命令,将执行结果放到缓冲区
  • 将数据给客户端,如果一次给不完,就等下次能给时再给,不等,直到全部给完

事件驱动

异步没有零散的等待,但有个问题是,如果redis不一直阻塞等命令来,咋个知道“网络包有数据了”、“下次能给时”这两个时机? 如果一直去轮训问肯定效率很低,要有个高效的机制,来通知redis这两个时刻,由这些时刻来触发动作。 这就是事件驱动。

一个tcp包来了、有数据可以写给客户端 这两个时机都是事件。与之对应的就是redis和客户端之间socket的可读、可写事件[1] ,就像微信聊天中新消息提醒一样。 linux中的epoll就是干这个事的,redis基于epoll等机制抽象出了一套事件驱动框架[2],整个server完全由事件驱动,有事件发生就处理,没有就空闲等待。

redis6多线程主要解决 socket 可读可写的网络IO等待,命令的执行还是单线程处理

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
樹莓派加裝攝像頭
樹莓派買回來好久,一直也沒什麼地方用得上。這次折騰下攝像頭監控的東東。 首先,找一個樹莓派支持的攝像頭。我的是很久以前用過的一個,像素質量已經很差了。幾乎看不清東西,先將就用一下吧。
零式的天空
2022/03/16
1760
树莓派控制摄像头_树莓派连接摄像头
树莓派外接摄像头,最常用的有两种:CSI摄像头、USB摄像头。当然网络摄像头也是可以的。
全栈程序员站长
2022/11/07
3.1K0
树莓派控制摄像头_树莓派连接摄像头
荔枝派Zero(全志V3S)驱动开发之USB摄像头
上一篇博客实现了在ubuntu打开usb摄像头,也确认了 usb 摄像头支持 UVC,这节我们将 usb 驱动移植到荔枝派开发板上,并实现拍照的功能以及做 mjpeg-streamer 视频流服务器测试。
Gnep@97
2023/08/10
7820
荔枝派Zero(全志V3S)驱动开发之USB摄像头
树莓派 USB摄像头 实现网络监控( MJPG-Streamer)
    上面的包源已经发生变化 可前往https://fivecc.coding.net/public/mjpg-streamer/mjpg-streamer/git 查看,
Fivecc
2022/11/21
3.1K0
树莓派 USB摄像头 实现网络监控( MJPG-Streamer)
在树莓派3(RaspberryPi 3B
2.将树莓派的ip地址改为静态,此例中为172.16.0.68,网关出口为172.16.0.1
py3study
2020/01/06
1.3K0
转 树莓派无显示器安装系统
1.选择、安装操作系统 LZ选择的是官方提供的Raspbian,官方提供的Raspberry Pi专用Debian。打开下载页后,选择Raspbian “wheezy”的Zip下载。 下载页面: h
霡霂
2018/06/04
1.6K0
树莓派/PC实现实时摄像头数据共享—最优方法(搭建网络摄像头)
方法一:Python+OpenCv实现树莓派数据采集,树莓派搭建服务器,PC机作为客户端实现数据传输,结果发现传输画质太差。
不脱发的程序猿
2021/01/20
7.5K2
AI树莓派——构建树莓派大脑(NCNN环境搭建)
https://pan.baidu.com/s/1fhiX86L8iL8tsLbsiVa6Wg 密码: e64s
AI异构
2020/07/29
2.2K0
AI树莓派——构建树莓派大脑(NCNN环境搭建)
我是如何用树莓派 + Docker 轻松实现人脸识别应用的?
人脸识别技术已经被广泛应用在众多场景中。今天我们将利用Docker容器在树莓派上快速打造一个人脸识别应用。
用户6543014
2019/10/25
2.3K0
我是如何用树莓派 + Docker 轻松实现人脸识别应用的?
使用树莓派打造远程Web服务器
简介:基于树莓派3B打造个人的远程Web服务器完全教程,主要是各个帖子内容的集合,并非原创但经过实践验证保证其在最新的系统环境上有效。
星哥玩云
2022/07/27
2.1K0
使用树莓派打造远程Web服务器
【Docker】树莓派使用Docker安装NextCloud及其他的记录
http://ip:8888, 这个是刚刚配置的服务器地址加上刚刚映射的主机端口。 输入用户名密码,数据库使用MYSQL,数据库以后用户密码,数据库nextcloud,地址写内部地址172.17.0.2. 然后安装指示一路填写信息,安装就好了。
一朵灼灼华
2022/08/05
4.2K2
【Docker】树莓派使用Docker安装NextCloud及其他的记录
机器之心实操 | 亚马逊详解如何使用MXNet在树莓派上搭建实时目标识别系统
选自AWS 机器之心编译 参与:思源 在过去的五年中,深度神经网络已经解决了许多计算困难的问题,特别是计算机视觉。因为深度神经网络需要大量的计算力来训练模型,所以我们经常使用多块 GPU 或云端服务器进行分布式地训练。实际上,在深度神经网络模型经过训练后,它只需要相对较少的计算资源就能执行预测。这就意味着我们能将模型部署到低功耗的边缘设备中,并且在没有网络连接的情况下运行。 亚马逊的开源深度学习引擎 Apache MXNet 除了支持多 GPU 训练和部署复杂模型外,还可以生成非常轻量级的神经网络模型。我们
机器之心
2018/05/09
1.8K0
机器之心实操 | 亚马逊详解如何使用MXNet在树莓派上搭建实时目标识别系统
树莓派计算机视觉编程:1~5
OpenCV 是用于计算机视觉的简单而强大的编程框架。 计算机视觉领域的新手和专家都喜欢它。 通过使用 Python 3 作为编程语言编写 OpenCV 程序,我们可以轻松地学习计算机视觉。 Raspberry Pi 单板计算机家族使用 Python 作为其首选开发语言。 使用 Raspberry Pi 开发板和 Python 3 学习 OpenCV 编程是我们可以遵循的最佳方法之一,可以开始我们的奇妙旅程,进入计算机视觉编程的惊人领域。 在本章中,您将熟悉开始使用 Raspberry Pi 和计算机视觉所需的所有重要概念。 在本章结束时,您将能够在各种 Raspberry Pi 主板型号上设置 Raspbian 操作系统(OS)。 您还将学习如何将这些板连接到互联网。
ApacheCN_飞龙
2023/04/27
8.4K0
树莓派计算机视觉编程:1~5
云中树莓派(2):将传感器数据上传到 AWS IoT 并利用Kibana进行展示
DHT22 是一款温度与湿度传感器,它有3个针脚,左边的第一个引脚(#1)为3-5V电源,第二个引脚(#2)连接到数据输入引脚,最右边的引脚(#4)接地。
SammyLiu
2019/06/28
1.2K0
云中树莓派(2):将传感器数据上传到 AWS IoT 并利用Kibana进行展示
详解树莓派上如何安装Home Assistant Supervised
Home Assistant的大名,想必大家都知道,可以桥接到设备到Apple的HomeKit等等。当然,我们用树莓派,不想使用HA的系统,又像获得更全面的HA体验,可以试试HAS(Home Assistant Supervised)。
Mintimate
2022/03/31
5.1K5
详解树莓派上如何安装Home Assistant Supervised
如何将PaddleDetection模型在树莓派4B上部署?
【飞桨开发者说】侯继旭,海南师范大学本三自动化专业在读,人工智能开发爱好者,曾获2019中国高校计算机大赛-人工智能创意赛海南省一等奖、2019年度海南省高等学校科学研究“人工智能”优秀成果奖
用户1386409
2020/06/01
1.1K0
如何将PaddleDetection模型在树莓派4B上部署?
ffmpeg 入门
http://einverne.github.io/post/2015/12/ffmpeg-first.html
bear_fish
2018/09/19
2.9K0
❤️肝下25万字的《决战Linux到精通》笔记,你的Linux水平将从入门到入魔❤️【建议收藏】
因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。
全栈程序员站长
2022/09/05
2.3K0
❤️肝下25万字的《决战Linux到精通》笔记,你的Linux水平将从入门到入魔❤️【建议收藏】
嵌入式AI快速入门课程-K510篇 (第三篇 环境搭建及开发板操作)
​ 使用桥接模式下,虚拟主机与真实主要在VMnet0构成的局域网内通信,同时通过真实主机中的网关与外网通信,即可实现Ubuntu与开发板进行文件传输。
韦东山
2024/08/22
5790
嵌入式AI快速入门课程-K510篇 (第三篇 环境搭建及开发板操作)
Hexo博客框架初识入门到进阶.md
[TOC] 1.Hexo介绍 Q:什么是 Hexo? A:Hexo 是一个快速、简洁且高效的博客框架,Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网
全栈工程师修炼指南
2020/10/23
1.5K0
Hexo博客框架初识入门到进阶.md
推荐阅读
相关推荐
樹莓派加裝攝像頭
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档