首页 > 数据库 >为什么Redis 是单线程的以及为什么这么快?

为什么Redis 是单线程的以及为什么这么快?

时间:2024-04-07 19:13:17浏览次数:25  
标签:为什么 数据结构 单线程 redis Redis IO 多线程

  • redis完全基于内存,绝大部分请求是纯粹的内存操作,非常快速.
  • 数据结构简单,对数据操作也简单,redis中的数据结构是专门进行设计的
  • 采用单线程模型, 避免了不必要的上下文切换和竞争条件, 也不存在多线程或者多线程切换而消耗CPU, 不用考虑各种锁的问题, 不存在加锁, 释放锁的操作, 没有因为可能出现死锁而导致性能消耗
  • 使用了多路IO复用模型,非阻塞IO
  • 使用底层模型不同,它们之间底层实现方式及与客户端之间的 通信的应用协议不一样,Redis直接构建了自己的VM机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求

标签:为什么,数据结构,单线程,redis,Redis,IO,多线程
From: https://www.cnblogs.com/daitu66/p/18119704

相关文章

  • redis开发规约
    key设计1、可读性和可管理性#业务名:表名:idgetpersoninfo:person:12、简洁性减少key长度,建议不超过39字节例子humanresource:employee:88301->hr:emp_883013、特色字符key不要包含特殊字符(空格,换行,引号),建议使用英文与数字不同类型的应用场景 序列化JdkS......
  • Redis 一般有哪些使用场景?
    热点数据的缓存缓存是Redis最常见的应用场景,之所有这么使用,主要是因为Redis读写性能优异。而且逐渐有取代memcached,成为首选服务端缓存的组件。而且,Redis内部是支持事务的,在使用时候能有效保证数据的一致性。限时业务的运用redis中可以使用expire命令设置一个键的生存时间,......
  • redis基本操作
    基本类型string字符串#get/set-获取设置值setkey"value"#设置key的值为valuegetkey#获取key的值#getset-获取设置值getsetdbmongodb#没有旧值,返回nilgetsetdbredis#返回mongodb#setnx-nil时设置(分布式锁......
  • 说说TCP为什么需要三次握手和四次挥手?
    一、三次握手三次握手(Three-wayHandshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备过程如下:第一次握手:客户端给服务端发一个SYN报文,并指明客......
  • 使用redis-server &启动redis,没有读取到最新配置
    今天搭redis主从架构的时候,使用 redis-server& 启动redis时,一直没有读取到修改后的配置文件,得使用 redis-server/home/redis-7.2.4/redis.conf& 才可以后面查了下,redis.conf配置中开头有一段注释,说明为了读取配置文件,必须在启动Redis时将配置文件路径作为第一个参数传递......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
    鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的要......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
     鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的......
  • java为什么要使用接口呢 用例子带你全面理解接口
    接口的概念简单来说接口就是一个框架这就像做数学题的时候,需要套用固定的步骤是一样的在编程时,如果需要实现多个类似或者相同的模块,那么使用接口,可以让你拥有一套随时可以编辑的步骤.接口的意义在Java中,接口(Interface)扮演着非常关键的角色,它们有以下意义和作用:......
  • redis自学(29)AOF持久化
    AOFAOF全称为AppendOnlyFile(追加文件)。Redis处理的每一个写命令都会记录在AOF文件,可以看做是命令日志文件。  AOF默认是关闭的,需要修改redis.conf配置文件来开启AOF:  AOF的命令记录的频率也可以通过redis,conf文件来配:  从上到下是可靠性越来越低,但是性能......
  • 在使用set添加对象的时候,重写了hashcode方法后,为什么equals返回的仍是false,如何理解ha
    /**1.对象的哈希码值和内存地址值不是一回事;*2.如果自定义类不复写Object类中的equals方法,那么equals比较的就是两个对象的内存地址值。*//***下面证明了hash值和内存地址的关系*一、当没有重写hashCode()方法的时候,*S......