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

总结

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

相关推荐
bytemaster几秒前
SSH 连接被秒断?从握手失败到跳板机自动中转的完整排查路径
后端·架构
smallswan2 分钟前
《Rust七十二变》开源了
开发语言·后端·rust·ai编程
想要成为糕糕手6 分钟前
🚀 NestJS 完全入门指南: Module/Controller/Service讲解 + 实战 CRUD
后端·nestjs
开心就好20256 分钟前
appuploader-cli 使用教程:在 Windows 上用命令行把 IPA 上传到 App Store
后端·ios
倾颜7 分钟前
Node.js 为什么会慢?从 Event Loop、CPU、内存到并发控制聊性能问题
后端
用户921080262868 分钟前
AI 应用平台为什么要拆分 Java 后端和 Python AI 服务
后端
星火102418 分钟前
【LangChain4j系列08】Agentic AI 多智能体协作
人工智能·后端
凤山老林22 分钟前
零停机数据库演进:Spring Boot 集成 Flyway 与平滑DDL变更策略
数据库·spring boot·后端
步行cgn23 分钟前
MyBatis <sql> 标签详解:SQL 片段的定义与复用
后端
想要成为糕糕手25 分钟前
🏭 设计模式之工厂模式:从蜜雪冰城到 NestJS,把「new」外包出去
后端·nestjs