Redis3 Hash 类型命令详解

发布于:2025-03-05 ⋅ 阅读:(186) ⋅ 点赞:(0)

1. 什么是 Redis Hash?

Redis Hash 是一种 键值对集合,类似于 Java 里的 HashMap,可以用来存储对象的数据。例如,你可以将用户信息存储在 Redis 的 Hash 结构中,每个字段代表用户的一个属性。

示例

HSET user:1001 name "Alice" age "25" city "New York"

此时 user:1001 是一个 Hash,包含 nameagecity 三个字段。


2. Redis Hash 常用命令

1. HSET —— 设置哈希表的某个字段值

HSET user:1001 name "Alice"

作用:将 user:1001 这个哈希表的 name 字段设置为 "Alice"。


2. HGET —— 获取哈希表中某个字段的值

HGET user:1001 name

作用:获取 user:1001 这个哈希表中 name 字段的值,返回 "Alice"


3. HMSET —— 同时设置多个字段的值

HMSET user:1001 name "Alice" age "25" city "New York"

作用:同时设置 nameagecity 三个字段的值。


4. HMGET —— 获取多个字段的值

HMGET user:1001 name age city

作用:获取 nameagecity 三个字段的值。


5. HGETALL —— 获取哈希表中的所有字段和值

HGETALL user:1001

作用:返回 user:1001 的所有字段和值。


6. HEXISTS —— 判断字段是否存在

HEXISTS user:1001 age

作用:判断 user:1001age 字段是否存在。


7. HDEL —— 删除一个或多个字段

HDEL user:1001 age

作用:删除 user:1001age 字段。


8. HINCRBY —— 对字段的值进行整数增加

HINCRBY user:1001 age 5

作用:将 user:1001age 字段增加 5


9. HINCRBYFLOAT —— 对字段的值进行浮点数增加

HINCRBYFLOAT user:1001 balance 100.5

作用:给 user:1001balance 字段增加 100.5


10. HLEN —— 获取哈希表中的字段数量

HLEN user:1001

作用:获取 user:1001 哈希表中的字段数量。


11. HKEYS —— 获取哈希表中的所有字段

HKEYS user:1001

作用:返回 user:1001 的所有字段。


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

HVALS user:1001

作用:返回 user:1001 的所有值。


13. HSETNX —— 只有字段不存在时才设置值

HSETNX user:1001 country "USA"

作用:如果 country 字段 不存在,则设置为 "USA"。


3. 典型应用场景

  1. 存储用户信息

    HSET user:1002 name "Bob" age "28" city "Los Angeles"

    适用于存储结构化的用户数据,如 idnameage 等。

  2. 计数器

    HINCRBY user:1002 login_count 1

    适用于用户登录次数、点赞数等场景。

  3. 购物车

    HSET cart:1001 product:2001 3  # 3件商品2001

    适用于存储用户购物车的商品信息。


4. 总结

        Redis Hash 结构适用于 存储对象数据,相比 String 类型,它可以 减少 key 数量,提高查询效率,但在字段过多的情况下也会增加内存占用。合理使用 Hash 类型可以提高数据管理的便利性和效率。