从第一性原理构建。

从零开始为多线程内存数据处理而设计。无继承的技术债务,无运行时开销,无任何妥协。

为可预测的性能而设计

FlashKey的架构消除了限制传统内存存储的瓶颈。

多线程事件循环

每个工作线程运行自己的epoll/kqueue事件循环,无争用地并行处理命令。

线程独立内存区域

线程本地内存分配消除锁争用,提供可预测的分配性能。

无锁数据结构

并发哈希表和跳表实现无互斥开销的并行读写。

集成存储引擎

MVCC快照和AOF持久化直接内置于核心——无需外部进程协调。

从请求到响应

每个操作都遵循为最低延迟优化的确定性路径。

1

连接接受

传入连接通过SO_REUSEPORT分配到各工作线程。

2

命令解析

RESP2/RESP3协议解析,零拷贝缓冲区管理。

3

执行

在线程本地数据结构上执行命令,具有MVCC隔离。

4

响应

结果序列化后通过同一工作线程的事件循环发回。

透明水平扩展

FlashKey集群使用与Redis兼容的哈希槽分配在节点间分发数据。

主节点

具有自动哈希槽分配的主数据持有者。每个主节点处理16,384个哈希槽的一个子集。

副本节点

用于读取扩展和自动故障转移的实时同步副本。每个主节点可以拥有多个副本。

哨兵

集成监控和自动故障转移协调。检测主节点故障并在无需人工干预的情况下提升副本。

有针对性的技术选择

每个组件都为性能和可靠性而选择。

C11
手动内存管理,零运行时开销,直接硬件访问
epoll / kqueue
平台原生事件驱动I/O,实现最大连接吞吐量
AES-256-CTR
硬件加速加密,支持AES-NI指令集
Lua 5.1
嵌入式脚本引擎,用于服务器端命令组合

准备好看架构的实际运行了吗?

我们的工程团队将为您详解设计决策。