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 哈希类型的操作。

相关推荐
WX-bisheyuange12 分钟前
基于Spring Boot的流浪动物管理系统
java·spring boot·后端
ArabySide19 分钟前
【Spring Boot】Interceptor的原理、配置、顺序控制及与Filter的关键区别
java·spring boot·后端
步步为营DotNet22 分钟前
深入理解ASP.NET Core Middleware:构建高效Web应用的管道基石
前端·后端·asp.net
爱笑的源码基地22 分钟前
智慧工地云平台源码,采用Java+SpringCloud+UniApp+MySql技术,支持多端展示,具备集团级多级权限管理。
人工智能·后端·spring·spring cloud·源码·智慧工地·工地智能管理
ALex_zry22 分钟前
系统编程的基石:补码循环溢出与Rust变量绑定的深度探索
开发语言·后端·rust
闲人编程26 分钟前
Flask蓝图系统:模块化应用架构设计
后端·python·flask·api·蓝图·应用工厂·codecapsul
不会kao代码的小王38 分钟前
突破局域网!OpenObserve,数据观测随时随地
linux·windows·后端
缺点内向40 分钟前
如何在 C# 中高效的将 XML 转换为 PDF
xml·后端·pdf·c#·.net
Arva .42 分钟前
Spring Boot自动配置原理
java·spring boot·后端