Redis 架构
版本: v1.0 最后更新: 2025-10-07
Redis 在 Zanbara 中的作用
Redis 是 Zanbara 的核心缓存和高频数据存储系统,承载以下关键功能:
订单簿缓存(实时价格档位)
用户会话管理(JWT token)
速率限制(请求计数)
行情数据缓存(ticker、trades)
实时消息发布订阅
分布式锁
核心数据结构
1. 订单簿 (Sorted Set)
订单簿使用 Redis Sorted Set 实现价格排序。
# 买单(按价格降序)
ZADD orderbook:SOL-PERP:bids 204.50 "order_id_1|size_10.5"
ZADD orderbook:SOL-PERP:bids 204.30 "order_id_2|size_5.2"
ZADD orderbook:SOL-PERP:bids 204.00 "order_id_3|size_20.0"
# 卖单(按价格升序)
ZADD orderbook:SOL-PERP:asks 205.00 "order_id_4|size_8.0"
ZADD orderbook:SOL-PERP:asks 205.20 "order_id_5|size_12.5"
ZADD orderbook:SOL-PERP:asks 205.50 "order_id_6|size_6.0"
# 获取最佳买单(Top 20档)
ZREVRANGE orderbook:SOL-PERP:bids 0 19 WITHSCORES
# 获取最佳卖单(Top 20档)
ZRANGE orderbook:SOL-PERP:asks 0 19 WITHSCORES
# 删除已成交订单
ZREM orderbook:SOL-PERP:bids "order_id_1|size_10.5"Rust 代码示例:
2. 用户会话 (String + TTL)
3. 速率限制 (String + 原子递增)
Rust 速率限制实现:
4. 行情快照 (Hash)
5. 最新成交 (List - FIFO)
6. 实时推送 (Pub/Sub)
Rust Pub/Sub 示例:
7. 分布式锁 (String - NX EX)
Rust 分布式锁实现:
Redis Streams (消息队列)
成交事件流
Rust Streams 示例:
持久化配置
RDB + AOF 混合持久化
持久化策略选择
场景
推荐配置
原因
订单簿
AOF everysec
数据重要,允许最多丢失1秒
会话
RDB only
可接受丢失,重新登录即可
限流计数
No persistence
临时数据,可丢失
消息队列
AOF everysec
消息不能丢失
Redis Cluster 配置(扩展阶段)
集群架构
集群配置文件
创建集群
性能优化
内存优化
网络优化
监控指标
关键指标查询
Prometheus 监控
关键指标:
redis_memory_used_bytes: 内存使用redis_commands_processed_total: 命令执行总数redis_connected_clients: 连接客户端数redis_keyspace_hits_total: 缓存命中次数redis_keyspace_misses_total: 缓存未命中次数
故障排查
常见问题
1. 内存溢出
2. 慢查询
3. 连接耗尽
相关文档
维护: Zanbara 技术团队
Last updated