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

相关推荐
计算机毕设VX:Fegn08957 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
没差c8 小时前
springboot集成flyway
java·spring boot·后端
三水不滴8 小时前
Redis 过期删除与内存淘汰机制
数据库·经验分享·redis·笔记·后端·缓存
笨蛋不要掉眼泪8 小时前
Spring Boot集成LangChain4j:与大模型对话的极速入门
java·人工智能·后端·spring·langchain
sheji341611 小时前
【开题答辩全过程】以 基于SpringBoot的疗养院管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
短剑重铸之日11 小时前
《设计模式》第六篇:装饰器模式
java·后端·设计模式·装饰器模式
码界奇点13 小时前
基于Flask与OpenSSL的自签证书管理系统设计与实现
后端·python·flask·毕业设计·飞书·源代码管理
代码匠心14 小时前
从零开始学Flink:状态管理与容错机制
java·大数据·后端·flink·大数据处理
分享牛14 小时前
LangChain4j从入门到精通-11-结构化输出
后端·python·flask
知识即是力量ol15 小时前
在客户端直接上传文件到OSS
java·后端·客户端·阿里云oss·客户端直传