实测数据,而非空口声明。
每一项性能指标均有可复现的基准测试作为支撑。使用标准 Redis 基准测试工具在真实条件下测试——相同硬件、相同方法、可验证的结果。
FlashKey 与 Redis — 并列对比
使用 redis-benchmark 进行基准测试,50 个并行客户端,每个操作 100,000 次请求。相同硬件、相同配置、相同测试方法。
| 操作 | FlashKey | Redis 7.2 | 提升幅度 |
|---|---|---|---|
| SET | 187,402 ops/sec | 148,810 ops/sec | +25.9% |
| GET | 198,807 ops/sec | 154,321 ops/sec | +28.8% |
| LPUSH | 191,204 ops/sec | 142,653 ops/sec | +34.0% |
| LPOP | 193,610 ops/sec | 147,929 ops/sec | +30.9% |
| Pipeline (20) | 1,247,503 ops/sec | 1,021,832 ops/sec | +22.1% |
< 0.3 毫秒
P99 延迟
即使在持续高负载下也能保持亚毫秒级响应时间
线性
核心扩展
吞吐量随可用 CPU 核心数成比例增长
零
COW 开销
MVCC 快照消除了基于 fork 的写时复制内存峰值
12x
在 16 核心时
线性
扩展性
0
单线程瓶颈
扩展状态
多核利用
线性吞吐量扩展
零锁竞争
扩展性
多线程为何至关重要
Redis 在单线程中处理命令。FlashKey 将工作负载分布到所有可用核心。每增加一个核心,性能差距就会进一步拉大。
- 1 核心:与 Redis 性能相当
- 4 核心:约 3.2 倍 Redis 吞吐量
- 8 核心:约 6.5 倍 Redis 吞吐量
- 16 核心:约 12 倍 Redis 吞吐量——接近线性扩展
直接对比
FlashKey 与 Redis 的逐项功能对比
FlashKey
- 原生多线程,每核心独立事件循环
- 内置 AES-256-CTR 静态数据加密
- MVCC 快照——无需 fork(),无 COW
- 主动复制与集成 sentinel
- 使用 C11 编写——零运行时开销
- 442 个命令,完全协议兼容
Redis
- 单线程命令处理
- 无原生加密——需要外部 TLS 代理
- 基于 fork() 的持久化,伴随 COW 内存峰值
- 需要外部 sentinel 进程
- 使用 C99 编写,基于单线程设计假设
- io-threads 仅限于 I/O,不执行命令
性能常见问题
这些基准测试是如何进行的?
使用 redis-benchmark 在 FlashKey 和 Redis 7.2 上以相同参数运行,相同硬件(裸金属服务器)、相同操作系统调优。所有测试均可复现——我们公开发布测试方法。
FlashKey 在如此高速下是否保持兼容性?
是的。FlashKey 通过了完整的 Redis 测试套件。性能提升源于架构改进(多线程、MVCC),而非协议上的妥协。
高负载下的延迟表现如何?
即使在 90% 以上的负载率下,FlashKey 仍然保持亚毫秒级的 P99 延迟。多线程消除了影响单线程架构的队头阻塞问题。
我可以复现这些基准测试吗?
当然可以。下载社区版,在相同硬件上对 FlashKey 和 Redis 同时运行 redis-benchmark。我们鼓励独立验证。