从0开始回顾Redis---系列二

简介: Redis单线程1、单线程Redis为什么这么快?1. 单线程实现:避免了多线程编程模式面临的共享资源的并发访问控制问题,比如线程切换和锁资源争用的开销。2. 内存存储:Redis是使用内存存储,没有磁盘IO上的开销。3. 高效的数据结构: 采用了高效的数据结构,例如哈希表和跳表,这是它实现高性能的一个重要原因。4. 采用多路复用机制:使其在网络IO操作中能并发处理大量的客户端请求,实现高吞吐率。2、基于多路复用的高性能I/O模型多路复用机制是指一个线程处理多个IO流,就是我们经常听到的select/epoll机制。简单来说,在Redis只运行单线程的情况下,该机制允许内

Redis单线程


1、单线程Redis为什么这么快?


  1. 单线程实现避免了多线程编程模式面临的共享资源的并发访问控制问题,比如线程切换和锁资源争用的开销。
  2. 内存存储Redis是使用内存存储,没有磁盘IO上的开销。
  3. 高效的数据结构 采用了高效的数据结构,例如哈希表和跳表,这是它实现高性能的一个重要原因。
  4. 采用多路复用机制:使其在网络IO操作中能并发处理大量的客户端请求,实现高吞吐率。


2、基于多路复用的高性能I/O模型


多路复用机制是指一个线程处理多个IO流,就是我们经常听到的select/epoll机制。简单来说,在Redis只运行单线程的情况下,该机制允许内核中,同时存在多个监听套接字和已连接套接字。内核会一直监听这些套接字上的连接请求或数据请求。一旦有请求到达,就会交给Redis线程处理,这就实现了一个Redis线程处理多个IO流的效果。

Redis网络框架调用epoll机制,让内核监听这些套接字。此时,Redis线程不会阻塞在某一个特定的监听或已连接套接字上,也就是说,不会阻塞在某一个特定的客户端请求处理上。正因为此,Redis可以同时和多个客户端连接并处理请求,从而提升并发性。  

为了在请求到达时能通知到Redis线程,select/epoll提供了基于事件的回调机制即针对不同事件的发生, 调用相应的处理函数。  

具体过程如下

  1. Redis网络框架调用epoll机制,让内核监听这些套接字。
  2. select/epoll一旦监测到FD(套接字)上有请求到达时,就会触发相应的事件。
  3. 这些事件会被放进一个事件队列,Redis单线程对该事件队列不断进行处理。

总结

这样一来,Redis无需一直轮询是否有请求事件发生,这就可以避免造成CPU资源浪费。同时,Redis在对事件队列中的事件进行处理时,会调用相应的处理函数,这就实现了基于事件的回调。因为Redis一直在对事件队列进行处理,所以能及时响应客户端请求,提升Redis的响应性能


3、Redis为啥被称为单线程?


  1. Redis是单线程,主要是指Redis的网络IO和键值对读写是由一个线程来完成的这也是Redis对外提供键值存储服务的主要流程。
  2. 但Redis的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。所以,严格来说,Redis并不是单线程,但是我们一般把Redis称为单线程高性能,这样显得“酷”些。


4、Redis6.0为什么引入多线程?


  1. Redis主要瓶颈在于内存与网络IO,内存不够可以增加或提供数据结构优化,而网络lO读写占时间,若可以将网络处理改为多线程,性能将大幅度提高。
  2. 引入多线程处理网络读写,执行命令还是单线程,充分利用服务器多核资源。
相关文章
|
Oracle Java 关系型数据库
CentOS7 下rpm安装jdk1.8
CentOS7 下rpm安装jdk1.8
930 0
|
测试技术 数据库管理
【软件工程】第一章
【软件工程】第一章
|
存储 弹性计算 运维
阿里云弹性裸金属服务器ebm详解
阿里云弹性裸金属服务器ebm详解,阿里云弹性裸金属服务器(ECS Bare Metal Server)是一种可弹性伸缩的高性能计算服务,原神龙服务器,计算性能与传统物理机无差别,具有安全物理隔离的特点,裸金属服务器分钟级的交付周期
612 0
|
Java
震惊!java中日期格式化的大坑!
震惊!java中日期格式化的大坑!
322 1
|
Shell 数据库 Python
用 Flask 来写个轻博客 (5) — (M)VC_SQLAlchemy 的 CRUD 详解
目录 目录 前文列表 扩展阅读 SQLAlchemy 的 CRUD Create 增添数据 Retrieve 读取数据 限制返回记录的数目 返回记录的排序 查询函数的链式调用 Flask-SQLAlchemy 的专有分页函数 pagination Query 的过滤...
1809 0
|
算法 Java
基本垃圾回收算法
原文地址:ITeye 基本垃圾回收算法 可以从不同的的角度去划分垃圾回收算法: 按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法。
780 0
|
13天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
5295 28
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考

热门文章

最新文章