结论:Redis单机QPS极限可达150万,通过内核优化bypass、DPDK零拷贝网络、Maglev哈希等手段,结合多实例并行和Sharding,集群总QPS破千万。优化核心是减少系统调用、内存拷贝和锁竞争,实际场景需根据业务调整持久化、数据结构选择。
来源1
在高并发场景下,Redis的QPS瓶颈主要来自网络IO、内核协议栈和内存管理。我们用DPDK直通网卡,绕过内核TCP/IP栈,直接在用户态处理数据包,单机GET/SET QPS从50w提升到120w。接着用io_uring异步IO替换epoll,进一步减少系统调用开销到近零。
来源2
红色闪电项目测试显示,标准Redis 7.0单实例在空转下QPS约80万,开启AOF后降到40万。优化后用muduo网络库+reactor线程模型,QPS飙升至180万。关键是Maglev一致性哈希避免热点,集群16节点总QPS达2500万。
来源3
性能瓶颈剖析:1.锁竞争,优化用无锁skiplist;2.内存分配,预分配jemalloc大页;3.网络,TCP_NODELAY+SO_REUSEPORT多端口监听。实测单机峰值QPS 165w,99线延迟0.8ms,CPU利用率95%。
来源4
技术圈热议:有人说Redis单机极限100w,有人实测200w+。我们挑战用eBPF hook系统调用,XDP加速包过滤,结合Ristretto缓存,QPS破160w。持久化用RDB快照+AOF appendfsync everysec,平衡性能和可靠性。
来源5
高并发之旅:从单机到集群,Sharding分片数设为16384,客户端用一致性哈希。压力测试工具redis-benchmark -c 1000 -n 10M,优化前后QPS从70w到155w。内存碎片控制在10%内,避免fork阻塞。
来源6
奇妙发现:禁用transparent_hugepage,调大maxmemory-policy allkeys-lru,线程数设为CPU核*2。网络用RSS队列绑定核心,零拷贝sendfile。最终单实例QPS 172w,集群32节点总吞吐5000w QPS。
来源7
优化方案总结:1.内核调优vm.overcommit_memory=1;2.用户态替换envoy proxy;3.数据倾斜用slot迁移。实操中,瓶颈转移到客户端连接池,建议连接复用+pipeline批量命令。
FAQ
Q: Redis单机QPS能到多少?
A: 优化后150-200万,取决于硬件和配置。
Q: 怎么减少网络开销?
A: 用DPDK或io_uring,开启TCP_NODELAY。
Q: 集群怎么避免热点?
A: Maglev哈希+自动rebalance。
Q: 持久化影响性能吗?
A: 是,选RDB或everysec AOF。
Q: 测试工具推荐?
A: redis-benchmark或wrk配合pipeline。