Redis使用与命名规范

一、统一 Redis Key 命名规范

1. 推荐命名格式

{project}:{module}:{biz}:{type}:{id}

各部分含义

字段 含义 示例
project 项目名 wimp / mall
module 模块名 user / order / device
biz 业务含义 info / status / index
type 数据类型 string / hash / list / set / zset
id 唯一标识 userId / orderId

示例

wimp:user:info:hash:1001
mall:order:status:string:90001
iot:device:alarm:zset:device123

说明:

  • 统一小写,用冒号分隔
  • 从左到右语义逐渐具体
  • 便于运维、监控、批量删除与数据隔离

二、通用 Key 命令

命令 说明 返回值
keys pattern 模糊查询 key(⚠ 生产慎用,O(N)) 匹配的 key 列表
del key [key ...] 删除一个或多个 key 成功删除的 key 数量
exists key [key ...] 判断 key 是否存在 存在的 key 数量
expire key seconds 设置 key 的过期时间(秒) 1=成功,0=失败
ttl key 查看剩余过期时间 剩余秒数 / -1 永久 / -2 不存在

三、String(字符串)命令

命令 说明 返回值
set key value 新增或覆盖字符串 OK
get key 获取字符串值 value / nil
mset k1 v1 k2 v2 批量设置(原子操作 OK
mget k1 k2 批量获取 value 列表
incr key 整数自增 1 自增后的值
incrby key n 整数自增 n 自增后的值
incrbyfloat key n 浮点数自增 n 自增后的值
setnx key value key 不存在才设置 1=成功,0=失败
setex key seconds value 设置值并指定过期时间 OK

四、Hash(哈希)命令

命令 说明 返回值
hset key field value 新增/修改字段 1=新增,0=覆盖
hget key field 获取字段值 value / nil
hmset key f1 v1 f2 v2 批量设置字段 OK
hmget key f1 f2 批量获取字段 value 列表
hgetall key 获取所有 field 和 value Map 结构
hkeys key 获取所有 field field 列表
hvals key 获取所有 value value 列表
hincrby key field n 字段自增 自增后的值
hsetnx key field value field 不存在才设置 1=成功,0=失败

典型场景:对象属性、用户信息、设备元数据


五、List(列表)命令

命令 说明 返回值
lpush key e1 e2 左侧插入元素 列表长度
rpush key e1 e2 右侧插入元素 列表长度
lpop key [count] 左侧弹出元素 元素 / 列表
rpop key [count] 右侧弹出元素 元素 / 列表
lrange key start end 获取区间元素 元素列表
blpop key timeout 阻塞(阻塞客户端线程)左弹 key + value
brpop key timeout 阻塞(阻塞客户端线程)右弹 key + value

典型场景:消息队列、任务队列


六、Set(无序集合)命令

命令 说明 返回值
sadd key member 添加元素 新增数量
srem key member 删除元素 删除数量
scard key 元素个数 数量
sismember key member 判断是否存在 1=存在,0=不存在
smembers key 获取所有元素 元素列表
sinter k1 k2 交集 集合
sdiff k1 k2 差集 集合
sunion k1 k2 并集 集合

典型场景:标签、去重、关系集合


七、Sorted Set(有序集合)命令

命令 说明 返回值
zadd key score member 添加/更新元素 新增数量
zrem key member 删除元素 删除数量
zscore key member 获取 score score / nil
zrank key member 升序排名(0 开始) 排名
zcard key 元素数量 数量
zcount key min max score 区间统计 数量
zincrby key n member score 自增 新 score
zrange key start end 按排名升序 member 列表
zrangebyscore key min max 按 score 范围 member 列表
zinter / zunion / zdiff 交/并/差集 新集合
zrevxxx 所有命令的降序版本

典型场景:排行榜、延迟队列、权重排序


八、最佳实践总结

  • ❌ 禁止生产使用 keys *
  • ✅ 使用 明确前缀 + 语义化命名
  • ✅ 对象用 Hash,计数用 String,排序用 ZSet
  • ✅ 设置合理过期时间,避免内存泄漏
  • ✅ 业务 key 与缓存 key 分前缀区分

posted @ 2025-12-18 15:03  jiangyang1556  阅读(2)  评论(0)    收藏  举报