Redis(13)Redis的哈希(Hash)类型有哪些常用命令?

Redis 的哈希(Hash)类型类似于一个键值对集合,通常用于存储对象。每个哈希包含多个字段(field),每个字段都有一个值(value)。哈希类型支持一系列常用命令,下面详细介绍这些命令,并结合代码示例进行展示。

1. HSET - 设置哈希字段的值

HSET 命令用于设置哈希字段的值,如果字段不存在则创建新字段。

bash 复制代码
HSET key field value

示例:

bash 复制代码
HSET user:1 name "John"
HSET user:1 age 30

2. HGET - 获取哈希字段的值

HGET 命令用于获取哈希字段的值。

bash 复制代码
HGET key field

示例:

bash 复制代码
HGET user:1 name
HGET user:1 age

3. HMSET - 同时设置多个哈希字段的值(从 Redis 4.0 开始被标记为废弃,建议使用 HSET)

HMSET 命令用于同时设置多个哈希字段的值。

bash 复制代码
HMSET key field1 value1 field2 value2

示例:

bash 复制代码
HMSET user:1 name "John" age 30

4. HMGET - 获取多个哈希字段的值

HMGET 命令用于获取多个哈希字段的值。

bash 复制代码
HMGET key field1 field2

示例:

bash 复制代码
HMGET user:1 name age

5. HGETALL - 获取哈希中所有字段和值

HGETALL 命令用于获取哈希中所有字段和值。

bash 复制代码
HGETALL key

示例:

bash 复制代码
HGETALL user:1

6. HDEL - 删除哈希字段

HDEL 命令用于删除一个或多个哈希字段。

bash 复制代码
HDEL key field1 field2 ...

示例:

bash 复制代码
HDEL user:1 age

7. HEXISTS - 检查哈希字段是否存在

HEXISTS 命令用于检查哈希字段是否存在。

bash 复制代码
HEXISTS key field

示例:

bash 复制代码
HEXISTS user:1 name
HEXISTS user:1 age

8. HLEN - 获取哈希字段的数量

HLEN 命令用于获取哈希字段的数量。

bash 复制代码
HLEN key

示例:

bash 复制代码
HLEN user:1

9. HINCRBY - 增加哈希字段的整数值

HINCRBY 命令用于将哈希字段的整数值增加指定的增量。

bash 复制代码
HINCRBY key field increment

示例:

bash 复制代码
HINCRBY user:1 age 5

10. HINCRBYFLOAT - 增加哈希字段的浮点数值

HINCRBYFLOAT 命令用于将哈希字段的浮点数值增加指定的增量。

bash 复制代码
HINCRBYFLOAT key field increment

示例:

bash 复制代码
HINCRBYFLOAT user:1 balance 10.5

11. HKEYS - 获取哈希中的所有字段名

HKEYS 命令用于获取哈希中的所有字段名。

bash 复制代码
HKEYS key

示例:

bash 复制代码
HKEYS user:1

12. HVALS - 获取哈希中的所有值

HVALS 命令用于获取哈希中的所有值。

bash 复制代码
HVALS key

示例:

bash 复制代码
HVALS user:1

示例代码

下面是一个完整的示例,展示了如何使用上述常用命令操作 Redis 哈希类型:

bash 复制代码
# 启动 Redis CLI
redis-cli

# 设置哈希字段的值
HSET user:1 name "John"
HSET user:1 age 30
HSET user:1 balance 100.5

# 获取哈希字段的值
HGET user:1 name  # 输出: "John"
HGET user:1 age   # 输出: 30

# 同时设置多个哈希字段的值
HMSET user:1 name "John" age 30 balance 100.5

# 获取多个哈希字段的值
HMGET user:1 name age  # 输出: 1) "John"  2) "30"

# 获取哈希中所有字段和值
HGETALL user:1  # 输出: 1) "name"  2) "John"  3) "age"  4) "30"  5) "balance"  6) "100.5"

# 删除哈希字段
HDEL user:1 age
HGET user:1 age  # 输出: (nil)

# 检查哈希字段是否存在
HEXISTS user:1 name  # 输出: 1
HEXISTS user:1 age   # 输出: 0

# 获取哈希字段的数量
HLEN user:1  # 输出: 2

# 增加哈希字段的整数值
HINCRBY user:1 age 5  # 设置后 age 为 35
HINCRBY user:1 age 5  # 输出: 40

# 增加哈希字段的浮点数值
HINCRBYFLOAT user:1 balance 10.5  # 输出: 111.0

# 获取哈希中的所有字段名
HKEYS user:1  # 输出: 1) "name"  2) "balance"

# 获取哈希中的所有值
HVALS user:1  # 输出: 1) "John"  2) "111.0"

注意事项

  1. 数据类型转换 :HINCRBY 和 HINCRBYFLOAT 命令会自动进行数据类型转换,确保字段值为整数或浮点数。
  2. 返回值:大多数命令在执行成功时返回整数 1 表示成功,返回 0 表示失败。
  3. 字段名和键名:字段名和键名都是字符串类型,可以包含任何字符。

总结

Redis 的哈希类型命令非常丰富,支持多种操作,如设置、获取、删除、检查、增加等。通过这些命令,你可以对 Redis 中的哈希类型数据进行灵活的操作和管理。上述示例代码涵盖了大多数常用的哈希命令,帮助你快速掌握 Redis 哈希类型的操作。

相关推荐
我不会起名字3221 小时前
会话缓存失效排查:区分 Redis 失效与节点广播
redis·后端·go·即时通讯·im·故障排查
深入云栈2 小时前
Netty 4.2.x 源码深度解析 (二十三):ByteBuf 核心设计 —— 索引、类型与零拷贝
java·后端·架构
JackJiang2 小时前
IM踩坑:聊天消息ID怎么设计?一个UUID搞不定,我用双ID解决
后端·架构
开心猴爷2 小时前
iOS 上架 App 流程
后端·ios
code_Bo3 小时前
不只命令行:我把跨 Agent 会话同步做成了桌面应用
前端·javascript·后端
用户8356290780514 小时前
使用 Python 控制 Excel 工作表的分页位置
后端·python
用户8356290780514 小时前
Python 如何在 Word 中添加和管理文档变量
后端·python
量化分析码农5 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
程序员cxuan6 小时前
讲真,智能路由这事儿,还得看基元律动
人工智能·后端·程序员
vaskilab6 小时前
Schema 全绿,Agent 却把参数编造了
后端