Agent Skills
返回列表
🤖

Redis Patterns

AI Agent 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/redis-patterns-sh-xqy9rb

技能介绍

要解决的问题

Redis 用久了,代码能跑,但问题总在上线后暴露:缓存 key 命名混乱难以排查,KEYS * 把生产环境打挂,缓存条目不设 TTL 导致内存持续上涨,用 pub/sub 做消息却发现消费者不在线时消息全丢。这些都不是 Redis 本身的错,而是用法错了,且往往在真实负载下才暴露。

技能如何工作

这个技能把常见的 Redis 用法整理成一套可对照的模式,核心覆盖几个方向:

  • 缓存策略:key 遵循 entity:id:field 这类统一命名约定,所有缓存条目必须设置 TTL,防止内存无界增长
  • 滑动窗口限流:基于 sorted set 实现限流,而不是简单的固定窗口计数
  • 事件处理:需要持久化、确认和重放的场景用 Streams + consumer group,pub/sub 只做临时扇出
  • 原子操作:复合操作用 Lua 脚本保证原子性,分布式锁需包含 fencing token 与 TTL
  • 避坑清单:明确列出反模式,比如把大于 100KB 的对象不压缩直接存入、生产环境用 KEYS 做模式匹配(应改用 SCAN)、用 pub/sub 承载可靠消息、无持久化策略却把 Redis 当唯一数据源、连续多命令不走 pipeline

适用边界

这份模式清单适合已经或准备将 Redis 用于缓存、限流、事件流、分布式锁的工程师,用于代码评审与上线前自查。它不替代对数据结构本身的理解:sorted set 成员的过期清理仍需要显式策略,高吞吐场景的连接池配置要结合真实基准测试。分布式锁的正确性依赖 fencing token 与 TTL 的配合,只照搬示例而不理解超时权衡,在网络分区下仍可能失效。

使用场景

  • 为接口设计缓存层时,需要规范缓存键命名并统一设置 TTL,避免内存无界增长
  • 为 API 实现限流时,需要用有序集合搭建滑动窗口,替代固定窗口计数
  • 做服务间事件通知时,需要判断该用 pub/sub 还是 Streams,并处理消费确认与重放
  • 上线前做 Redis 用法评审,需要对照反模式清单排查 `KEYS`、大对象存储和缺少持久化策略

适合人员

  • 后端工程师,负责把 Redis 缓存接入高并发服务,需要规避常见误用和生产事故
  • 平台工程师,负责设计接口限流和事件处理链路,需要选择合适的数据结构与消费模式
  • 数据库或基础设施工程师,需要评审团队的 Redis 用法,统一命名约定、TTL 和持久化策略
  • 维护遗留系统的工程师,需要排查 `KEYS` 阻塞、内存增长和消息丢失等线上问题