首页 > 数据库 >Redis 单线程快的原因

Redis 单线程快的原因

时间:2023-09-05 14:56:59浏览次数:46  
标签:单线程 Redis 阻塞 并发 内存 IO 原因

Redis 单线程快的原因

为什么Redis单线程却能高并发

  1. 纯内存操作
  2. 核心是基于非阻塞的IO
  3. 多路复用机制 单线程反而避免了多线程的频繁上下文切换问题

Redis 的高并发快的原因

  1. Redis 是基于内存的,内存的读写速度非常快;数据存在内存中,数据结构用HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)。
  2. Redis 是单线程的,省去了很多上下文切换的时间(避免线程切换和静态消耗)。
  3. Redis使用IO多路复用技术(IO multiplexing, 解决对多个I/O监听时,一个I/O阻塞影响其他I/O的问题),可以处理并发的连接(非阻塞IO)。

Redis 是单线程的原因

因为 Redis 是基于内存的操作,CPU 不是 Redis 的瓶颈,Redis 的瓶颈最有可能是机器内存的大小或者网络带宽。

标签:单线程,Redis,阻塞,并发,内存,IO,原因
From: https://www.cnblogs.com/alwaysi/p/17679521.html

相关文章

  • elasticsearch wildcard 慢查询原因分析(深入到源码!!!)
    大家好,我是蓝胖子,前段时间线上elasticsearch集群遇到多次wildcard产生的性能问题,elasticsearchwildcard一直是容易引发elasticsearch容易宕机的一个风险点,但究竟它为何消耗cpu呢?又该如何理解elasticsearchprofileapi的返回结果呢?在探索了部分源码后,我将在这篇文章一一揭......
  • Redis数据结构
    5种基础数据结构:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。这5种数据结构是直接提供给用户使用的,是数据的保存形式,其底层实现主要依赖这8种数据结构:简单动态字符串(SDS)、LinkedList(双向链表)、HashTable(哈希表)、SkipList(跳跃表)、Intset(整数集合)、ZipLis......
  • [原创]Redis 6 参数说明
    Redis6参数说明(6.2.6)[includes]includeRedis的配置文件redis.conf中的include参数可以用来指定其他的配置文件。当include参数的值指定为一个文件夹时,Redis会载入这个文件夹下的所有以.conf为后缀的文件。示例:include/path/to/redis.conf.d/当include参数的值指定为......
  • CentOS 7安装Redis6
    安装步骤若系统没有安装wget,需要先安装wgetyum-yinstallwget从官网下载rediswgethttps://download.redis.io/releases/redis-6.2.3.tar.gz将下载的文件解压至/usr/localtar-zxvfredis-6.2.3.tar.gz-C/usr/localredis编译需要依赖gcc,安装gccyum-yinstallgcc......
  • Redis持久化(备份)
    Redis持久化分为两种ROB/AOFROB:运用的快照的原理,默认开启,备份条件:时间线/数量线(60:10000)①时间到达60秒,检测访问数量是否达到10000,如果达到进行备份操作,如果没到达(哪怕是9999)继续计时,直至达到下一个约定条件②访问数量达到10000,查看......
  • Redis持久化
    1.描述redis的持久化是为了避免进程突然退出导致数据永久丢失,需要将redis中的数据以某种形式从内存保存到硬盘中。当redis再次重启时,通过这些redis持久化文件对进程结束之前的数据进行数据恢复。redis持久化的方式有RDB持久化和AOF持久化两种。RDB持久化是通过将数据保存到硬盘,A......
  • 虹科干货 | 什么是Redis数据集成(RDI)?
    大量的应用程序、日益增长的用户规模、不断扩展的技术需求,以及对即时响应的持续追求。想想这些是否正是你在经历的。也许你尝试过自己构建工具来应对这些需求,但是大量的编码和集成工作使你焦头烂额。那你是否知道,有这样一个工具可以帮助你实现从缓存中执行所有查询?一、推出Redis数......
  • Spring缓存抽象怎么和redis进行集成
    一.在Mavenpom.xml文件中加入Redis包<!--redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis</artifactId><version>${boot.version}</version></depen......
  • Redis存取数据快的原因
    1.Redis是完全基于内存的,绝大部分请求是纯粹的内存操作,这个数据存在内存中,类似于HashMap,而HashMap的优势就是查找和操作的时间复杂度都是0(1);2.数据结构简单,对数据操作也简单,redis中的结构都是特殊设计的;3.采用单线程,不存在多进程和多线程导致的切换而消耗CPU,不用去考虑各种锁的......
  • 通过class字节码了解StringBuilder拼接字符串效率高的原因
    挺久没具体去看了,随手记一下吧。Stringstr="";for(inti=0;i<10;i++){str+=i;}这样的拼法,实际上从分析class的字节码来看,是在循环里面newStringBuffer对象,相当的耗。通过这样的分析,给新人解释,是最有效的了。还能提升一些了解java底层知识的兴趣。——《Java编程思......