缓存键命名必须带服务标识前缀如{service-name}:type:id共享数据需明确读写权限过期策略按场景区分集群下SCAN需注意slot双层缓存失效须原子化跨服务通知禁用Redis发布订阅。缓存键命名必须带服务标识前缀微服务里多个服务共用一个 Redis 实例时user:123 这种裸键名极易撞车——订单服务和用户服务都可能生成它。不加隔离删缓存、查错、监控全乱套。实操建议所有键强制用 {service-name}:type:id 格式比如 order:user:456、user:profile:456服务名用小写短名如 auth、pay避免空格和下划线方便命令行操作和监控识别别依赖 Redis 的 KEYS 扫描做清理——生产环境禁用改用 SCAN 前缀匹配否则阻塞主线程共享数据结构要区分读写权限与生命周期多个服务读同一个缓存没问题但谁负责写、谁负责失效必须明确。常见错误是A 服务更新了 product:789B 服务却还在用旧值或者 C 服务误删了它。实操建议只允许单一服务拥有写权限其他服务只读写服务通过消息队列或事件通知变更不鼓励跨服务直连 Redis 写用不同过期策略区分场景用户会话类用 EXPIRE配置类用永不过期 主动更新统计类用 EXPIREAT 对齐批处理时间点避免用 HSET 存跨服务共享对象——字段语义易冲突改用 JSON 字符串 明确版本号字段比如 {v:1.2,price:299}集群模式下 KEYS 和 SCAN 不能跨 slot 使用Redis Cluster 把键按 CRC16 分到 16384 个 slotKEYS * 在任意节点执行只会返回本节点的键导致漏查SCAN 同理不指定 COUNT 或游标管理不当容易重复或跳过。 灵办AI 免费一键快速抠图支持下载高清图片