1. 纯内存操作
这是Redis高性能的基石,Redis将所有数据存储在主内存(RAM)中,所有操作都直接在内存中进行。

相比于传统数据库需要进行耗时的磁盘I/O操作(如查找、读取、写入)。
内存访问速度,比磁盘快了几个数量级(纳秒级 vs 毫秒级)。
这极大地减少了操作延迟,使得Redis能够快速响应大量的并发请求。
2.多实例分片集群
分片,才是真正让你支撑百万级 QPS 的“硬核能力”。

要做到百万级 QPS,必须采用横向扩展:
Redis Cluster 水平扩展(最常用),给每个实例分配槽位,每个实例承担一部分数据与流量。
线性扩容吞吐,例如:
- 单实例:15 万 QPS;
- 10 个实例节点:150 万 QPS;
- 20 个节点:300 万 QPS;
每个 master 有至少一个 slave,保证容灾。
分片策略,比如:
key hash;
客户端一致性 hash;
Cluster slot;
3. I/O 多路复用机制
I/O 多路复用机制,这是Redis如何高效处理大量并发连接的核心。
Redis使用操作系统的select、epoll(Linux)或kqueue(macOS/FreeBSD)等I/O多路复用技术。

它允许一个主线程,同时监听多个套接字(Socket)上的I/O事件。
比如:连接建立、数据到达、数据发送完成…等操作。
性能优势: 在等待客户端发送数据、或接收响应的空闲时间内。
主线程并没有阻塞,而是在监听其他套接字。
这使得单个线程可以高效地管理数以万计的并发连接,实现了高并发。
4. 优秀的数据结构
Redis不仅仅是简单的键值存储,它底层使用了高度优化的数据结构。
Redis为不同的数据类型(String, Hash, List, Set, Sorted Set)设计了专门的、高效的底层数据结构。

例如:哈希表(Hash Table)、跳跃表(Skip List,用于Sorted Set)、压缩列表(Zip List)、快速列表(Quick List)等。
例如,哈希表的查找是$O(1)$,保证了极速的键值查找。
这些数据结构都是经过精心设计的,能够保证绝大多数操作(如查找、插入、删除)的时间复杂度为$O(1)$ 或 $O(\log N)$。
mikechen睿哥
10年+一线大厂架构实战专家,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。