首页 > 数据库 >redis系列~通用基础知识

redis系列~通用基础知识

时间:2023-11-10 18:22:51浏览次数:66  
标签:通用 Socket 多路复用 redis 基础知识 命令 处理器 多线程

Redis为什么这么快

  1. 完全基于内存操作
  2. 使⽤单线程,避免了线程切换和竞态产生的消耗
  3. 基于⾮阻塞的IO多路复⽤机制
  4. C语⾔实现,优化过的数据结构,基于⼏种基础的数据结构,redis做了⼤量的优化,性能极⾼

IO多路复用机制讲解

,I/O多路复用是指利用单个线程来同时监听多个Socket,并在某个Socket可读、可写时得到通知,从而避免无效的等待,充分利用CPU资源。目前的I/O多路复用都是采用的epoll模式实现,它会在通知用户进程Socket就绪的同时,把已就绪的Socket写入用户空间,不需要挨个遍历Socket来判断是否就绪,提升了性能。

其中Redis的网络模型就是使用I/O多路复用结合事件的处理器来应对多个Socket请求,比如,提供了连接应答处理器、命令回复处理器,命令请求处理器;

在Redis6.0之后,为了提升更好的性能,在命令回复处理器使用了多线程来处理回复事件,在命令请求处理器中,将命令的转换使用了多线程,增加命令转换速度,在命令执行的时候,依然是单线程。

标签:通用,Socket,多路复用,redis,基础知识,命令,处理器,多线程
From: https://www.cnblogs.com/danhuangpai/p/17824775.html

相关文章

  • Redis Functions 介绍之二
    首先,让我们先回顾一下上一篇讲的在RedisFunctions中关于将key的名字作为参数和非key名字作为参数的区别,先看下面的例子。首先,我们先在一个Lua脚本文件mylib.lua中定义如下的库和函数。//--------------------mylib.lua文件开始-----------//#!luaname=myliblocalfunct......
  • Redis Functions 介绍之二
    首先,让我们先回顾一下上一篇讲的在RedisFunctions中关于将key的名字作为参数和非key名字作为参数的区别,先看下面的例子。首先,我们先在一个Lua脚本文件mylib.lua中定义如下的库和函数。//--------------------mylib.lua文件开始-----------//#!luaname=myliblocalfunctio......
  • docker redis
    dockerrun--restart=always-p6379:6379--nameredis-dredis:latest--requirepass123456dockerrun--restart=always\-p6379:6379\--nameredis\-v/opt/redis/conf/redis.conf:/etc/redis/redis.conf\-v/opt/redis/data:/data\-dredisredis-s......
  • redis 6个节点(3主3从),始终一个节点不能启动
    redis节点,始终有一个节点不能启动起来1.修改了配置文件protected-modeno,重启修改了配置文件protected-modeno,重启redis问题依然存在2、查看/var/log/message的redis日志Aug2107:40:33redisMasterkernel:Outofmemory:Killprocess31814(redis-server)score193ors......
  • redis数据类型
    ·Redis常见数据类型string可存储三种类型值:字符串整数浮点数string是最基本的类型,value可以是数字、字符串或者二进制数据。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。常用于缓存、计数、共享session,分布式锁进......
  • redis 类型Hash 中value存储空间大小
    在Redis中,Hash数据类型的存储空间大小取决于存储在Hash中的键值对的数量以及每个键值对的键和值的大小。Redis内部会根据实际存储的数据进行动态分配内存,因此存储空间大小是可变的。下面是关于Hash数据类型中value存储空间大小的一些考虑因素:键值对数量:Hash中的键值对数量是主要影......
  • Windows下绿色版Redis安装与配置
    介绍官网:https://redis.ioRedis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。NoSql(NotOnlySQL),不仅仅是SQL,泛指非关系型数据库。NoSql数据库并不......
  • 【主流技术】聊一聊 Redis 的基本结构和简单应用(一)
    目录前言一、String类型二、List类型三、Hash类型四、Set结构五、SortSet(Zset)结构六、文章小结前言Redis是目前互联网后端的热门中间件之一,在许多方面都有深度的应用,作为后端开发熟练掌握该技术是十分有必要的。Redis的五种数据类型是:1、String(字符串);2、Hash(哈希);3、L......
  • Redis分片集群
    搭建分片集群主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:●海量数据存储问题●高并发写的问题使用分片集群可以解决.上述问题,分片集群特征:●集群中有多个master,每个master保存不同数据●每个master都可以有多个slave节点●master之间通过ping监测彼......
  • Redis队列和阻塞队列
    redis队列的优点是轻量级,业务足够简单时不需要使用rabbitMq这样专业的消息中间件;缺点是弹出队列中的元素时,即使该消息处理失败也无法再次进行消费Redis队列List简单演示如下普通的redis队列,为了实现业务,通常会使用while进行循环,这样的话没有消息时依旧会频繁的执行循环,造成cpu的......