""" Redis 缓存键与 TTL 统一配置:所有键均带过期时间,避免 Valkey/Redis 无限增长。 全量缓存以 Redis 为主,进程内存仅作降级或最小缓冲。 """ # 键前缀(便于排查与清理) PREFIX_ATS = "ats:" PREFIX_MARKET = "market:" PREFIX_KLINES = "klines:" PREFIX_TICKER = "ticker_24h:" PREFIX_SYMBOL_INFO = "symbol_info:" PREFIX_LISTEN_KEY = "listen_key:" PREFIX_LEADER = "market_ws_leader" # TTL(秒)- 所有写入 Redis 的键必须带 TTL,禁止无过期 TTL_LEADER = 30 TTL_TICKER_24H = 120 TTL_BOOK_TICKER = 30 TTL_KLINE_STREAM = 600 # 10 分钟(WS 实时写入的 K 线) TTL_POSITIONS = 300 # 5 分钟(持仓缓存) TTL_BALANCE = 300 # 5 分钟(余额缓存) TTL_TICKER_SYMBOL = 30 # 单 symbol 24h 行情 TTL_SYMBOL_INFO = 3600 # 1 小时(交易对信息) TTL_KLINES_REST = 1800 # REST 拉取的 K 线默认 30 分钟 TTL_KLINES_REST_OLD = 300 # 旧格式 klines:{s}:{i}:{limit} 默认 5 分钟 TTL_LISTEN_KEY = 55 * 60 # 55 分钟(listenKey 缓存) TTL_TREND_STATE = 3600 TTL_INDICATORS = 30 TTL_RECO_SNAPSHOT = 7200 TTL_RECO_ITEM = 3600 TTL_LOCK_RECO = 10 # K 线按周期 TTL(REST 拉取后写入共享缓存) TTL_KLINES_BY_INTERVAL = { '1m': 60, '3m': 120, '5m': 180, '15m': 300, '30m': 600, '1h': 900, '2h': 1800, '4h': 3600, '6h': 5400, '8h': 7200, '12h': 10800, '1d': 21600, } TTL_KLINES_OLD_BY_INTERVAL = { '1m': 10, '3m': 20, '5m': 30, '15m': 60, '30m': 120, '1h': 300, '2h': 600, '4h': 900, '6h': 1200, '8h': 1800, '12h': 2400, '1d': 3600, }