全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-12 6 分钟 ✍️ juanwangdev

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适合遍历大量字段,避免阻塞

📝 发现内容有误?点击此处直接编辑

← 上一篇 Redis列表命令
下一篇 → Redis字符串命令
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库