Redis 使用规范

我请讲解下,Redis 使用规范
最新回答
执手踏青

2026-10-22 22:45:47

Redis 是一个高性能的键值对数据库,广泛应用于缓存、消息队列、分布式锁等场景。在使用 Redis 时,规范的 key 命名和合理的使用策略是确保系统稳定和高效运行的关键。

对于 key 的命名,遵循以下规则:使用冒号(:)分隔前缀和 key。前缀用于表示业务实体,建议使用驼峰格式并至少包含两层,如:accountService.entity.user:12345678。此 key 表示账户实体的特定 id。可以进一步分级,如:accountService.home.user:12345678 代表用户个人中心的聚合数据,accountService.entity.user:12345678 则表示基础实体数据。

在使用 Redis 时,必须为每个 key 设置过期时间,以防止数据永久存储导致内存泄漏。同时,Redis 采用 LRU 算法管理内存,因此,缓存数据的丢失是允许的。合理使用集合类型(Set、List、Map)时,应严格控制集合成员的数量。在集群分片中,如果将散列数据存储在同一个分片,可能会引起负载不均衡。为了优化性能,尽量将集合数据转换为 key-value 对形式。

隔离机制时,使用 key 进行隔离比通过 Redis 集合实现层级隔离更高效,因为前者操作更直接且不会导致负载不均。

新 key 使用时,应记录在使用记录文档中,由各组 leader 进行评审,并确保遵循使用规范,包括但不限于严格控制集合成员数量、合理设置 key 过期时间、避免使用 keys 的模糊匹配查询等。

严格禁止将日志类数据存储在 Redis 中,避免使用 Redis 作为队列,以减轻对系统的压力。缓存大数据时,单 key 的值不应超过 2MB(特殊情况需评审)。避免使用 keys 的模糊匹配查询,以防阻塞后续请求,导致缓存穿透和客户端请求超时。

避免使用危险命令如 flushall 和 monitor,前者会清空所有 Redis 数据,后者在高并发场景下可能因线程阻塞导致服务不可用。