带你玩转Redis Hash数据类型

发布于:2023-01-20 ⋅ 阅读:(594) ⋅ 点赞:(0)

🎨 个人介绍

👉大家好,我是:知识的搬运工旺仔

👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻

👉你的支持,是我每天更新的动力。

👉赞点:👍 留言:✍ 收藏:⭐

👉个人格言:想法一步一步的落实,才是你我前进最佳选择。

1. Hash 数据类型简介

  1. 一个String 类型的 域 (field)和 值(value)的映射表
  2. 这里的 field 和 value 你可以看作String 数据类型里边的value,我想表达的意思是field 不是key
  3. 每个哈希表可以存储2^32-1 个键值对,差不多40多亿数据
  4. value一般用户存储Java的JOSN序列化对象

2. 设置哈希表域的值

HSET key field value

:::success
HSET 命令:为哈希表的域设置值

  1. 将key 中的field 的值设置为value
  2. key不存在,将会床架一个hash表进行操作
  3. key 和 field 存在,将覆盖原来的值
    :::

HSETNX key field value

:::success
2.HSETNX命令:为哈希表不存在的域设值

  1. field 不存在时,将哈希表key 中的field 的值设置为value
  2. field 存在,命令将无效执行
  3. key存在,先创建key 在执行 HSETNX命令
    :::

HMSET key field value [field value…]

:::success
HMSET 命令:设置多个域和值到哈希表中

  1. 将多个 feild value 设置到key中
  2. 会覆盖哈希表key 中所有原有的field
  3. key存在,先创建key 在执行 HMSET命令
    :::

3. 获取哈希表中的域和值

HEGT key field

:::success
HGET 命令:获取哈希表中的域的值

  1. 获取 key中field 中的值
    :::

HGETALL key

:::success
HGETALL 命令:获取哈希表中所有的域和值

  1. 返回的长度是哈希表长度的2倍
  2. key 不存在,返回空列表
    :::

HMGET key field value [field value…]

:::success
HMGET 命令:获取多个域的值

  1. 获取key中多个field的值
  2. key中field不存在,返回nil
  3. key 不存在,也会返回nil
    :::

:::danger
HKEYS key
:::
:::success
HKEYS 命令:获取哈希表中的所有域

  1. 获取key 中所有的 field
  2. key不存在,返回空表
    :::

HVALS key

:::success
HVALS 命令:获取哈希表中所有的域的值

  1. 返回key 中 field 中的所有值
  2. key不存在,返回空表
    :::

4 哈希表统计

HLEN key

:::success
HLEN 命令:统计哈希表中的域的数量

  1. 返回的是一个数值
  2. key 不村子啊,返回 0
    :::

HSTRLEN key field

:::success
HSTRLEN 命令:统计哈希表中字符串长度

  1. 统计key中field中的字符串长度
  2. key中field 不存在,返回 0
    :::

5. 哈希表中的域加上增量值

HINCRBY key field increment

:::success
HINCRBY 命令:为哈希表中的域加上增量值

  1. 当加上的值为负数时,就是减法操作
  2. key不存在,会先创建key,然后执行命令
  3. field 不存在,先初始化value 的值为0,然后再执行操作
  4. field的值不是数值,将会报错
  5. HINCRBY命令操作的值被限制再64位
    :::

HINCRBYFLOAT key field increment

:::success
HINCRBYFLOAT 命令:为哈希表中的域加上浮点数增量值

  1. 为key 中field 的值 加上 浮点数增量值 increment
  2. key不存在,会先创建key,然后执行命令
  3. field 不存在,先初始化value 的值为0,然后再执行操作
  4. 在Redis 中,数字和浮点数都以字符串形式进行保存
  5. field 不是字符串,将会报错
  6. increment 不是双精度浮点数时,会报错
    :::

6. 删除哈希表中的域

HDEL key field [field…]

:::success
HDEL 命令:删除哈希表中的多个域

  1. 它会忽略不存在的field 进行删除,也就是说:多个field中可能有不存在的field ,也会删除成功
  2. 返回删除field 的数量
    :::

HEXISTS key field

:::success
HEXISTS 命令:判断哈希表中的域是否存在

  1. field 存在,返回1
  2. key 和 field 不存在,返回 0
    :::

🎈看完了不妨给我点个赞吧,👉你的支持,是我每天更新的动力…