用途:为游戏后端提供 Redis 使用模式,包括排行榜、会话缓存、发布订阅消息、限流、临时游戏状态,以及用于实时游戏数据的有序集合。触发关键词:Redis、pub/sub、leaderboard、session cache、rate limiting、sorted sets、game cache、ephemeral state、TTL、player presence、cross-server messaging。
主要能力:基于有序集合的排行榜(加分、取前 N、查玩家排名、查邻近排名,并定期快照到 PostgreSQL);带 TTL 的玩家会话缓存,遵循缓存旁路模式;跨服务器发布订阅消息,需为发布与订阅使用独立连接,并提供类型化事件处理器;基于有序集合的按玩家按动作滑动窗口限流,窗口大小与最大请求数可配置;短生命周期游戏状态,如带 TTL 的比赛状态、心跳玩家在线状态、临时增益效果。
使用方式:先安装依赖 bun add ioredis;使用 boilerplate/redis-client.ts 作为基础连接(含重连与错误处理),其他模块从此导入;排行榜用 boilerplate/leaderboard.ts,会话缓存用 boilerplate/session-cache.ts,发布订阅用 boilerplate/pub-sub.ts,限流用 templates/rate-limiter.ts,临时状态用 templates/ephemeral-state.ts。
限制与注意:Redis 是缓存与消息代理,不能作为主数据库,需有持久层兜底;每个缓存值都要设 TTL;生产环境不要用 KEYS *,应使用 SCAN;发布订阅与普通命令不要共用连接;值保持较小(小于 1MB);不要假设缓存已填充,始终实现缓存旁路。前置条件:无,属于基础设设施技能。