首页 > 数据库 >Redis为什么快呢?能说一下I/O多路复用吗?

Redis为什么快呢?能说一下I/O多路复用吗?

时间:2023-11-07 20:00:52浏览次数:36  
标签:为什么 socket 多路复用 epoll Redis 阻塞 线程 IO

Redis为什么快呢?

Redis的速度⾮常的快,单机的Redis就可以⽀撑每秒十几万的并发,相对于MySQL来说,性能是MySQL的⼏⼗倍。速度快的原因主要有⼏点:

1. 完全基于内存操作

2. 使⽤单线程,避免了线程切换和竞态产生的消耗

3. 基于⾮阻塞的IO多路复⽤机制

4. C语⾔实现,优化过的数据结构,基于⼏种基础的数据结构,redis做了⼤量的优化,性能极⾼

Redis为什么快呢?能说一下I/O多路复用吗?_Redis

能说一下I/O多路复用吗?

第一种选择:按顺序逐个检查,先检查A,然后是B,之后是C、D。。。这中间如果有一个学生卡住,全班都会被耽误。这种模式就好比,你用循环挨个处理socket,根本不具有并发能力。

第二种选择:你创建30个分身,每个分身检查一个学生的答案是否正确。 这种类似于为每一个用户创建一个进程或者- 线程处理连接。

第三种选择,你站在讲台上等,谁解答完谁举手。这时C、D举手,表示他们解答问题完毕,你下去依次检查C、D的答案,然后继续回到讲台上等。此时E、A又举手,然后去处理E和A。

第一种就是阻塞IO模型,第三种就是I/O复用模型。

Redis为什么快呢?能说一下I/O多路复用吗?_Redis_02

Redis为什么快呢?能说一下I/O多路复用吗?_MySQL_03

Linux系统有三种方式实现IO多路复用:select、poll和epoll。

例如epoll方式是将用户socket对应的fd注册进epoll,然后epoll帮你监听哪些socket上有消息到达,这样就避免了大量的无用操作。此时的socket应该采用非阻塞模式。

这样,整个过程只在进行select、poll、epoll这些调用的时候才会阻塞,收发客户消息是不会阻塞的,整个进程或者线程就被充分利用起来,这就是事件驱动,所谓的reactor模式。

标签:为什么,socket,多路复用,epoll,Redis,阻塞,线程,IO
From: https://blog.51cto.com/u_16255459/8239297

相关文章

  • python连接redis集群写入数据
    环境;Python:3.6.5 需要安装redis-py-cluster模块 #!/usr/bin/envpython#coding=utf-8fromredisclusterimportRedisClusterstartup_nodes=[{"host":"192.168.1.109","port":7001},{"host":"192.168.1.10......
  • 软件测试需求分析是什么?为什么需要进行测试需求分析?
    在软件开发中,软件测试是确保软件质量的重要环节之一。而软件测试需求分析作为软件测试的前置工作,对于保证软件测试的顺利进行具有重要意义。软件测试需求分析是指对软件测试的需求进行细致的分析和规划,以明确测试的目标、任务和范围,为后续的测试工作提供指导和支持。一、软......
  • 针对现状为什么需要对特权账号进行管理
       弱密码账号的危害高:通常数据中心资产都存在大量的弱密码账号,在护网、红蓝对抗演练、甚至黑客入侵中,入侵方首要的突破口就是通过撞库、爆破等手段探测弱密码账号,根据获取的弱密码账号进行提权。这类账号的危害极高。改密困难:客户无论从合规性考虑,还是安全性考虑,弱密码账号都......
  • redis连接满的问题处理
    redis连接满的问题处理1、ver环境系统登录失败ver环境登录失败,报错:cannotgetresource2、查看日志查看日志发现报错信息:maxnumberofclientsreached尝试登录redis发现无法登录redis,报错信息同上。3、问题排查及处理首先重启redis,使用以下命令查看redis的连接数:infoc......
  • redis-shake安装部署(4.0.2)
    环境:Os:Centos7redis-shake:4.0.2说明:redis源端和目的端都是单节点1.项目地址https://github.com/tair-opensource/RedisShake/tags2.下载介质我这里下载的版本是4.0.2,文件如下:redis-shake-linux-amd64.tar.gz 3.安装[root@localhostsoft]#mkdir-p/opt/redis-shake......
  • Redis集群之主从模式
    搭建主从架构单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。假设有A、B两个Redis实例,如何让B作为A的slave节点?●在B节点执行命令:slaveofA的IPA的port主从数据同步原理全量同步主从第一次同步是全量同步:master如何判断slave是......
  • 【Redis使用手册】一年多来redis使用markdow笔记总结,第(2)篇:Redis命令操作详解
    Redis是一个高性能的key-value数据库。本文会让你知道:什么是nosql、Redis的特点、如何修改常用Redis配置、写出Redis中string类型数据的增删改查操作命令、写出Redis中hash类型数据的增删改查相关命令、说出Redis中list保存的数据类型、使用StrictRedis对象对string类型数据......
  • Redis 下载与安装 Windows版教程
    ​ 1、下载windows版本的redis由于redis官方更支持我们使用Linux版本;可以下载微软官方维护的支持 Windows平台的Redis安装包下载地址:Releases·microsoftarchive/redis·GitHubtporadowski大神也提供了支持Windows平台的Redis 安装包,目前仍在维护,目前最新版本......
  • Redis下载安装
    1、下载安装包方式一:官网下载想要的版本https://download.redis.io/releases/上传到FinalShell方式二:选择自己想要的版本使用命令下载到指定位置wgethttps://download.redis.io/releases/redis-6.0.10.tar.gz2、解压下载好的压缩包tar-zxvfredis-6.0.10.tar.gz......
  • 聊城商标注册为什么要多类全类保护
    聊城商标注册为什么要多类全类保护恒标知产刘经理一、为什么要全类多类注册保护?商标全类保护是指申请人在办理商标注册时指定所有类别的商品及服务,使其商标在全部类别受到保护。有人认为在商标还不知名的情况下没有必要申请全类注册。但是,事前防御总比事后救济要好。商标是一种无形......