auto_trade_sys/trading_system/redis_ttl.py
薇薇安 59e25558cd feat(redis_cache, kline_stream, user_data_stream, risk_manager): 优化缓存机制与内存管理
在多个模块中引入 Redis 作为主要缓存机制,减少进程内存占用。更新 `binance_client.py`、`kline_stream.py`、`user_data_stream.py` 和 `risk_manager.py`,实现优先从 Redis 读取数据,降级到内存缓存。调整缓存 TTL 和最大条数,确保系统稳定性与性能。此改动提升了数据访问效率,优化了内存使用,增强了系统的整体性能。
2026-02-19 00:19:54 +08:00

41 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
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 线按周期 TTLREST 拉取后写入共享缓存)
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,
}