Documentation
README
Redis 安全规范
防止 Redis 常见性能和稳定性问题,适用于所有语言。
禁止操作
| 禁止 | 替代 | 原因 |
|---|---|---|
KEYS * / KEYS pattern |
SCAN 游标迭代 |
KEYS 是 O(N) 阻塞操作,生产环境会导致 Redis 卡死 |
FLUSHDB / FLUSHALL |
按 key 前缀 SCAN + DEL | 全量删除风险极高 |
| 无 TTL 的 SET | 所有 key 必须设置 TTL | 避免内存泄漏 |
必须遵守
1. 用 SCAN 替代 KEYS
// Go (go-redis) ❌
keys, _ := rdb.Keys(ctx, "user:*").Result()
// Go (go-redis) ✅
var cursor uint64
for {
keys, cursor, _ = rdb.Scan(ctx, cursor, "user:*", 100).Result()
// 处理 keys
if cursor == 0 { break }
}
This is the opening of the README. Read the full README on GitHub.