当前位置: 首页 > news >正文

Redis 集群配置

在币圈交易所,Redis 集群的节点数量和内存大小通常根据交易所的规模、访问量、并发需求等因素来决定。一般来说,可以按照以下标准配置:

Redis 集群节点数量

  • 小型交易所(日活 < 10万,QPS < 10k):通常 3-6 个节点,主从架构(每个主节点对应一个从节点),提供基本的高可用性和故障恢复能力。
  • 中型交易所(日活 10万 - 100万,QPS 10k - 100k):通常 6-12 个节点,采用 3-6 个主节点 + 对应的从节点,分片存储,保障高并发性能。
  • 大型交易所(日活 > 100万,QPS > 100k):通常 12-30 个节点,采用 5-15 个主节点 + 对应的从节点,甚至可能使用多集群架构(多个 Redis Cluster 组)。

Redis 部署架构

  • 集群模式(Redis Cluster):使用哈希槽(16384 个)分片存储,主从架构提高可用性,推荐用于大规模交易所。
  • 哨兵模式(Sentinel):适用于小规模交易所,提供主从切换和高可用性。
  • 持久化策略:大部分交易所只使用 AOF (Append-Only File) + RDB 定期快照,避免因宕机丢失关键数据。

如果是超大型交易所(如 Binance、OKX),可能会有 几十个 Redis 集群,每个集群有 10+ 节点,每个节点 128GB-256GB,通过 分片 + 读写分离 进行扩展。

Gate.io 这种中大型加密货币交易所,Redis 集群的规模通常比较大,主要是为了支撑高并发的撮合交易、行情推送、用户资产查询等核心业务。

Gate.io 级别交易所的 Redis 集群规模

以 Gate.io 这种交易量较大的交易所为例,Redis 集群一般有 几十到上百个节点,部署方式主要依赖 Redis Cluster多个独立的 Redis 组(按业务拆分)

  • 整体规模
    • 主从架构,通常 30~100 个节点
    • 不同业务可能有独立的 Redis 集群,例如:撮合、行情、用户资产等分别使用独立的 Redis 集群。
    • 单个集群的 Redis 主节点通常不超过 16 个,因为 Redis Cluster 采用 16384 个槽位分片,分片太多会导致管理复杂度上升。

单个 Redis 节点的内存配置

  • 单节点的内存大小通常在 128GB - 256GB 之间,少数高需求的场景可能用到 512GB(比如撮合引擎的缓存层)。
  • 为什么不使用更大的内存?
    • Redis 单线程处理,太大内存会影响 RDB、AOF 性能,数据快照和持久化会有卡顿风险。
    • 推荐 128GB - 256GB 作为单节点的合理上限,然后通过 多分片 来扩展 Redis 集群。

Redis 在 Gate.io 交易所的主要应用场景

(1)撮合引擎缓存

  • 交易所的核心是撮合引擎,每秒处理大量订单数据,Redis 主要用于缓存未成交订单。
  • 可能采用 多级缓存
    • 一级缓存(本地内存,如 LRU Cache):撮合引擎直接操作。
    • 二级缓存(Redis):存储未成交订单、盘口数据,提供快速读取能力。
    • 三级缓存(数据库,如 MySQL、TiDB):持久化存储已成交订单。
  • 撮合 Redis 可能是 一个独立的集群,使用高性能配置,比如:
    • 16~32 个 Redis 节点(8~16 个主节点 + 对应从节点)。
    • 256GB 内存 / 节点,数据量较大但不能影响撮合性能

(2)行情数据缓存(K 线、深度数据)

  • Redis 用于存储交易对的实时行情数据,例如 最近成交、盘口深度、K 线数据,然后推送给用户。
  • WebSocket 订阅的数据源一般来源于 Redis,避免直接查询数据库。
  • 可能使用 10~20 个 Redis 节点,以 128GB 内存为主,读写压力较大时可增加从节点进行读分流。

(3)用户资产快照

  • 查询用户资产余额、冻结金额等,用于下单前校验。
  • 由于用户资产变更频繁,可能采用 异步更新机制,Redis 作为缓存层,MySQL 作为最终存储。
  • 可能使用 6~12 个 Redis 节点,128GB 内存/节点

(4)风控、限流

  • 监控用户的交易行为,防止恶意刷单、大额交易风险等。
  • 主要采用 限流(Rate Limiting)、反作弊 逻辑,例如:
    • 统计短时间内某用户的下单次数。
    • 监控 IP、设备指纹等异常行为。
  • 这里可能使用 5~10 个 Redis 节点,因数据量较小,单节点 64GB 内存 即可。

(5)订单状态缓存

  • 订单状态变更前后,Redis 可能作为事务处理中间态缓存,避免数据库过载。
  • 订单状态有时会通过 Redis Stream 或 Kafka 进行消息推送。
  • 可能使用 8~16 个 Redis 节点,单节点 128GB 内存

Redis 的持久化与高可用

  • 持久化方式
    • 交易所通常不直接依赖 Redis 持久化,而是采用 数据库持久化 + Redis 高速缓存 方式。
    • 但为了防止 Redis 数据丢失,仍可能采用 AOF(Append-Only File)+ RDB(定期快照),具体策略:
      • 撮合相关 Redis 可能不开启 AOF(影响性能),而是定期从数据库加载数据。
      • 行情数据可能采用 AOF + RDB 结合方式,确保在 Redis 宕机后可恢复。
  • 高可用方案
    • Redis Cluster + 主从(Replication)+ Sentinel 监控
    • 多个数据中心部署,防止单机房故障影响 Redis。
    • 冷热数据分离,热点数据优先存 Redis,历史数据存数据库或更低成本存储。

总体来看,Gate.io 这种交易所的 Redis 总体集群规模可能在 50~100 个节点,内存总容量 10TB 以上,通过 分片+高可用架构 保障交易高并发和稳定性。

相关文章:

  • 代码随想录算法训练营Day12 | Leetcode 226翻转二叉树、101对称二叉树、104二叉树的最大深度、111二叉树的最小深度
  • PHP框架 ThinkPHP 漏洞探测分析
  • 基于SpringBoot+Vue的在教务管理(课程管理)系统+LW示例
  • 技术迭代、流量困境与营销突破:基于开源AI大模型与S2B2C模式的创新路径研究
  • HCIA-AI人工智能笔记4:神经网络类型
  • SpringSecurity + OAuth2 限制一个用户(同端互斥)登录
  • c# winform 提高界面加载速度
  • 毕设知识点
  • 图解AUTOSAR_SWS_UDPNetworkManagement
  • 探索抓包利器ProxyPin,实现手机APP请求抓包,支持https请求
  • Pyecharts入门之绘制地图数据
  • 基于赛灵思 Xilinx RFSoC 的 VPX 6U 高速数据采集模块技术讨论
  • 查看linux系统文件描述符限制
  • 以鸿道Intewell工业操作系统为核心,构建AI机器人新生态
  • 34.[前端开发-JavaScript基础]Day11-王者轮播图-书籍购物车-BOM对象-JSON
  • 知识补充
  • 《Operating System Concepts》阅读笔记:p483-p488
  • Ubuntu软件包离线下载安装
  • 智能制造:物联网和自动化之间的关系
  • QML控件 - Text
  • 最高法:依法惩治损害民营企业合法权益的串通投标行为
  • 肖钢:一季度证券业金融科技投资强度在金融各子行业中居首
  • “80后”北大硕士罗婕履新甘肃宁县县委常委、组织部部长
  • 美国新泽西客运公司遭遇罢工:40年来首次,35万人受影响
  • 篮球培训机构东方启明星被指停摆,家长称已登记未退费用超百万
  • 特朗普中东行:“能源换科技”背后的权力博弈|907编辑部