SuperAPI AI 工具集

redis-safety

编程与开发

查看项目

更新于 10-15 21:11

技能介绍

用途:当用户编写或修改 Redis 相关代码(go-redis、Jedis、redis-py、ioredis)时触发,提供跨语言的 Redis 安全与性能规范,防止常见性能与稳定性问题。

主要能力与规范:

  1. 禁止使用 KEYS * / KEYS pattern,改用 SCAN 游标迭代,因为 KEYS 是 O(N) 阻塞操作,生产环境可能导致 Redis 卡死。
  2. 禁止 FLUSHDB / FLUSHALL,改为按 key 前缀 SCAN + DEL,全量删除风险极高。
  3. 所有 key 必须设置 TTL,避免内存泄漏,禁止无 TTL 的 SET。
  4. 大 key 控制:单个 key 的 value 不超过 10KB;集合类型(List/Set/Hash/ZSet)元素不超过 5000 个,超过时拆分为多个 key。
  5. 多次 Redis 调用应使用 Pipeline 减少网络往返。

使用方式:技能在检测到相关 Redis 客户端代码时自动触发,按上述规范给出替代写法。示例包括 Go 用 rdb.Scan 循环、Java 用 ScanParams 与 jedis.scan、Python 用 r.scan_iter(match="user:*", count=100),以及 Pipeline 批量 Get 和带 TTL 的 Set。

适用场景:使用 Redis 的应用开发与代码审查,尤其是涉及批量 key 操作、缓存写入、集合数据存储的场景。

限制:资料未提供安装命令、配置方式、支持的客户端版本范围及具体阈值可配置性,暂未提供。