Redis为什么这么快(4大核心设计)

Redis是大型架构核心,下面我详解Redis性能快原因@mikechen

纯内存操作:速度的根基 

Redis 将所有数据都,存储在 内存 中。

这意味着所有的读写操作都直接在 RAM 中进行,避免了传统数据库在数据查询时需要进行缓慢的磁盘 I/O 操作(寻道、旋转等)。

Redis为什么这么快(4大核心设计)

毫秒到微秒级的响应: 内存的访问速度比固态硬盘(SSD)快几个数量级。

比机械硬盘(HDD)更是快上万倍,因此 Redis 的响应时间通常在 毫秒甚至微秒 级别。

 

单线程架构:极简高效 

Redis 的“单线程”,指的是 主线程 只有一个,它负责处理客户端发来的 所有命令请求(如 GET, SET, HGETALL 等)。

Redis 的命令操作大多是 纯内存操作(I/O 时间很短),速度极快,CPU 很快就能处理完。

Redis为什么这么快(4大核心设计)

Redis 的瓶颈,通常出现在网络 I/O 而非 CPU 上。

因此,单线程足以高效地处理请求,而不会因等待磁盘 I/O 而阻塞。

 

I/O多路复用:并发的关键 

I/O 多路复用技术(如 epollselect/poll) ,来监听多个 Socket 连接的读写事件。

当有数据准备好时,Redis 线程才进行处理,这使得单个线程能够高效地处理数以万计的并发连接。

Redis为什么这么快(4大核心设计)

I/O 多路复用,是一种高效的网络编程技术。

它允许单个线程同时监听,多个文件描述符(File Descriptor, FD,在网络编程中即 Socket 连接)。

并在任何一个 FD 准备好进行读写操作时(例如,客户端发送了数据过来),通知这个线程进行处理。

 

高效的数据结构:性能的武器

Redis 实现了多种,复杂且高效的数据结构。

如 跳跃表 (Skip List) 用于实现有序集合 (Sorted Set),压缩列表 (Zip List) 或 哈希表 (Hash Table) 用于存储哈希结构等。

Redis为什么这么快(4大核心设计)

这些数据结构使得 Redis 能够在大多数操作(如查找、插入、删除)中实现 O(1) 或 O($\log N$) 的时间复杂度。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧