cache
约 345 字大约 1 分钟
BigPeng大鹏采用四层混合缓存架构,根据数据特征选择最优缓存技术,实现极致性能与成本平衡。
缓存架构图
应用层
↓
L1 本地缓存层 (Moka + JWT Token Cache)
↓ (缓存未命中)
L2 分布式缓存层 (DragonflyDB)
↓ (缓存未命中)
L3 数据库层 (MySQL)
↓ (写入)
L4 持久化存储层 (RocksDB)缓存策略选择流程
| 数据特征 | 缓存方案 | 适用场景 |
|---|---|---|
| 极高频率访问,无需跨服务共享 | L1 本地缓存 | JWT Token |
| 极高频率访问,需要跨服务共享 | L2 分布式缓存 | 在线用户、验证码 |
| 高频率访问,数据量小 | L1 + L2 | 字典、配置、菜单 |
| 需要持久化 | L4 RocksDB | 操作日志、登录日志 |
| 低频率访问 | 不缓存 | 分页列表 |
缓存层级详情
| 缓存层级 | 技术方案 | 延迟 | QPS | 适用场景 |
|---|---|---|---|---|
| L1 | Moka 本地缓存 | 100ns | 无限 | 字典、用户、菜单、配置 |
| L2 | DragonflyDB | 0.2-0.3ms | 30W+ | 在线用户、验证码、Token |
| L3 | MySQL | 10ms | 10K+ | 持久化存储 |
| L4 | RocksDB | 100μs | 1M+ | 操作日志、统计数据 |
DragonflyDB 核心优势
- ⚡ QPS 30W+(比 Redis 快 2.5x)
- 🚀 延迟 0.2ms(比 Redis 低 50%)
- 💾 内存效率提升 30%
- 🔧 100% 兼容 Redis(零迁移成本)
缓存命中率
- 字典/配置: 99%+
- 用户信息: 95%+
- Token 验证: 98%+
- 整体: 95%+
