Redis哈希命令
哈希(Hash)是键值对集合,适合存储对象,如用户信息、商品属性等。
HSET/HGET基本操作
设置字段
Bash
# 设置单个字段
HSET user:1000 name "Alice"
# 设置多个字段
HSET user:1000 name "Alice" age 25 city "Beijing"
获取字段
Bash
# 获取单个字段
HGET user:1000 name
# 返回: "Alice"
# 获取不存在的字段
HGET user:1000 phone
# 返回: (nil)
HMSET/HMGET批量操作
批量设置
Bash
# 批量设置多个字段
HMSET user:1001 name "Bob" age 30 email "bob@example.com"
批量获取
Bash
# 批量获取多个字段
HMGET user:1001 name age email
# 返回:
# 1) "Bob"
# 2) "30"
# 3) "bob@example.com"
HGETALL获取所有字段
基本语法
Bash
HGETALL key
使用示例
Bash
HGETALL user:1000
# 返回:
# 1) "name"
# 2) "Alice"
# 3) "age"
# 4) "25"
# 5) "city"
# 6) "Beijing"
HKEYS/HVALS获取键或值
获取所有字段名
Bash
HKEYS user:1000
# 返回: "name", "age", "city"
获取所有字段值
Bash
HVALS user:1000
# 返回: "Alice", "25", "Beijing"
HEXISTS检查字段存在
基本语法
Bash
HEXISTS key field
使用示例
Bash
# 检查字段是否存在
HEXISTS user:1000 name
# 返回: 1(存在)
HEXISTS user:1000 phone
# 返回: 0(不存在)
HDEL删除字段
基本语法
Bash
HDEL key field [field ...]
使用示例
Bash
# 删除单个字段
HDEL user:1000 city
# 删除多个字段
HDEL user:1000 age email
HINCRBY数值增减
基本语法
Bash
HINCRBY key field increment
使用示例
Bash
# 设置初始值
HSET counter:page views 0
# 自增
HINCRBY counter:page views 100
# 返回: 100
# 自减
HINCRBY counter:page views -50
# 返回: 50
# 自增浮点数
HINCRBYFLOAT product:1000 price 10.5
HINCRBY是原子操作,适合统计计数场景。
HLEN获取字段数量
基本语法
Bash
HLEN key
使用示例
Bash
HLEN user:1000
# 返回: 3(3个字段)
HSETNX条件设置
基本语法
Bash
HSETNX key field value
使用示例
Bash
# 仅当字段不存在时设置
HSETNX user:1000 name "Alice"
# 返回: 1(设置成功)
# 字段已存在时设置失败
HSETNX user:1000 name "Bob"
# 返回: 0(设置失败)
HSETNX适合实现分布式锁或防止重复写入。
HSCAN迭代遍历
基本语法
Bash
HSCAN key cursor [MATCH pattern] [COUNT count]
使用示例
Bash
# 遍历所有字段
HSCAN user:1000 0
# 匹配特定模式
HSCAN user:1000 0 MATCH n*
# 只返回以n开头的字段
常用命令速查表
| 命令 | 说明 | 示例 |
|---|---|---|
| HSET | 设置字段 | HSET k f v |
| HGET | 获取字段 | HGET k f |
| HMSET | 批量设置 | HMSET k f1 v1 f2 v2 |
| HMGET | 批量获取 | HMGET k f1 f2 |
| HGETALL | 获取所有 | HGETALL k |
| HKEYS | 获取所有字段名 | HKEYS k |
| HVALS | 获取所有值 | HVALS k |
| HEXISTS | 检查存在 | HEXISTS k f |
| HDEL | 删除字段 | HDEL k f |
| HINCRBY | 数值增减 | HINCRBY k f 10 |
| HLEN | 字段数量 | HLEN k |
| HSETNX | 条件设置 | HSETNX k f v |
要点总结
- 哈希适合存储对象结构,一个key下多个field-value
- HSET/HGET是基础操作,HMSET/HMGET批量操作效率更高
- HGETALL返回所有字段和值,交替排列
- HINCRBY是原子操作,适合计数统计
- HSETNX仅在字段不存在时设置,防止覆盖
- HLEN返回字段数量,不返回字段内容
- HSCAN适合遍历大量字段,避免阻塞
📝 发现内容有误?点击此处直接编辑