首页 > 数据库 >Redis单线程,为什么速度快

Redis单线程,为什么速度快

时间:2024-04-28 17:23:23浏览次数:27  
标签:Socket 单线程 Redis 命令 处理器 IO 速度

Redis是单线程的,但是为什么还那么快

  1. 完全基于内存的,C语言编写
  2. 采用单线程,避免不必要的上下文切换可竞争条件
  3. 使用多路IO复用模型,非阻塞IO
    例如: bgsave 和 bgrewriteaof 都是在后台执行操作,不影响主线程的正常使用,不会产生阻塞

解释一下多路IO复用模型?

多路IO复用模型是指利用单个线程来同时监听多个Socket,并在某个Socket可读、可写时得到通知,从而避免无效的等待,充分利用CPU资源。目前的IO多路复用都是采用的epoll模式实现,它会在通知用户进程Socket就绪的同时,把已就绪的Socket写入用户空间,不需要挨个遍历Socket来判断是否就绪,提升了性能。
其中Redis的网络模型就是使用IO多路复用结合事件的处理器来应对多个Socket请求,比如,提供了连接应答处理器、命令回复处理器,命令请求处理器。在Redis6.0之后,为了提升更好的性能,在命令回复处理器使用了多线程来处理回复事件,在命令请求处理器中,将命令的转换使用了多线程,增加命令转换速度,在命令执行的时候,依然是单线程。

标签:Socket,单线程,Redis,命令,处理器,IO,速度
From: https://www.cnblogs.com/worshipone/p/18164131

相关文章

  • Redis集群
    Redis集群有哪些方案?在Redis中提供的集群方案总共有三种:主从复制、哨兵模式、Redis分片集群主从同步单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,可以搭建主从集群,实现读写分离。一般都是一主多从,主节点负责写数据,从节点负责读数据,主节点写入数据之后,需要把数......
  • springboot~redis的hash结构为key设置过期策略
    redis配置文件开启键过期#The"notify-keyspace-events"takesasargumentastringthatiscomposed#ofzeroormultiplecharacters.Theemptystringmeansthatnotifications#aredisabled.##Example:toenablelistandgenericevents,fromthepo......
  • 检测硬盘读写速度
    1.在左下角搜索框输入“cmd”,并点击“以管理员身份运行”。 2.输入命令“winsatdisk-drive盘符”,并点击“回车”。从上到下,分别是:✬ 随机读取速度: 179.36MB/s✬ 顺序读取速度: 414.64MB/s✬ 顺序写入速度: 208.79MB/s 原文出处https://baijiahao.baidu.com/......
  • 使用Redis实现游戏排行榜
    排行榜在当今应用中扮演着至关重要的角色。无论是游戏中的玩家排名、社交平台的用户活跃度榜单,还是其他领域的各种榜单,排行榜都是用户参与性和互动性的关键。在实现排行榜功能时,选择合适的数据库和数据结构至关重要。Redis,作为一种内存数据库,以其高性能和灵活性而备受青睐。下面将......
  • Installation requirements for SAP Kernels on Windows (C++ runtime environment, V
      Symptom在Windows执行StartSAP,报错信息找不到指定的模块:"Theprogramcan'tstartbecausemsvcr100.dllismissingfromyourcomputer.""无法启动此程序,因为计算机中丢失了msvcr100.dll。尝试重新安装该程序以解决此问题。" OtherTermsC,C++,runtime,VCred......
  • vmware中安装centos7, 安装redis, 并通过可视化软件(RESP)连接
    1.虚拟机网络问题解决刚安好的centos可能没有网卡(输入ipa没有ip地址),此时需要进行如下操作 vi/etc/sysconfig/network-scripts/ifconfig-ens33修改成如下:ONBOOT=yes 然后重启网络服务:servicenetworkrestart此时重新查看ipa就可以看到ip地址了在本地ping虚拟机......
  • 在 conda 中改用 mamba 依赖求解器以提升速度
    参考链接:https://www.anaconda.com/blog/a-faster-conda-for-a-growing-communityconda求解依赖环境的速度比较慢。根据上述链接,可以采用以下命令来更换conda默认的求解器,据说可以显著提升依赖求解的速度。先更新conda包:condaupdate-nbaseconda然后安装libmamba:co......
  • redis面试题
    redis面试题Redis是什么,应用场景:Redis是一种开源、内存中的数据存储系统,也被称为数据结构服务器。它支持多种数据结构(如字符串、哈希、列表、集合、有序集合、Bitmaps、HyperLogLogs等),并提供持久化、复制、事务、Lua脚本等功能。Redis常用于缓存、实时排行榜、计数器、消息队列......
  • Redis的数据持久化机制
    Redis的数据持久化机制Redis是一个高性能的内存数据库,为了保证数据的安全性,它提供了两种数据持久化机制:RDB和AOF。RDB(RedisDataBase):RDB是一种快照式的持久化方式,它会在指定的时间间隔内将内存中的数据生成一个快照文件,保存到磁盘上。当Redis重启时,可以通过加载RDB文件来恢复数......
  • SSRF打redis主从(更了)
    翻下去看更新受不了了。打的题目是网鼎杯2020玄武组的SSRFMe。打了一天,都是在moduleload那里失败,开了vps也不行,难道是redis版本对不上? 话不多说,我直接上payload,实在受不了了。[[email protected]]#redis-serverredis.conf[root@EddieMurphyredis-rogue-s......