Redis是大型架构核心,下面我详解Redis如何支撑 100 万 QPS@mikechen
1. 纯内存操作
Redis 能在高并发场景下支撑百万级 QPS,源于其多方面的架构设计与实现优化。
首先,Redis 采用纯内存操作,所有数据读写均在内存中完成,避免了磁盘 I/O 的高延迟。

这使得单次命令处理延迟极低,从而支持极高的请求吞吐量。
2.多实例分片集群
要突破单实例的性能瓶颈,必须使用集群(Cluster)架构,实现横向扩展(Scale-Out)。
将数据按键空间分片分布到多个 Redis 实例或节点上,能够并行处理大量请求,减轻单节点压力并提高整体吞吐能力。

例如,要达到 100 万 QPS,如果单个实例能处理 10 万 QPS,则理论上需要至少 10 个主节点实例组成集群。
3. I/O 多路复用机制
第三,Redis 使用高效的 I/O 多路复用机制。
比如: Linux 下的 Epoll、FreeBSD 下的 Kqueue,结合其单线程模型。
单线程模型,下利用事件驱动和非阻塞 I/O,使得单个线程可以同时管理数万个连接。

避免线程切换和锁争用带来的开销,提升并发连接的处理效率。
4. 优秀的数据结构
最后,Redis 提供丰富且高效的数据结构(字符串、哈希、列表、集合、有序集合等)。
并对这些结构,进行了精心实现与内存优化。

比如: 用于存储键值对,底层是哈希表,确保 Get/Set 操作的平均时间复杂度为 $O(1)$。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》