🎨 个人介绍
👉大家好,我是:知识的搬运工旺仔
👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻
👉你的支持,是我每天更新的动力。
👉赞点:👍 留言:✍ 收藏:⭐
👉个人格言:想法一步一步的落实,才是你我前进最佳选择。
带你玩转Redis Hash数据类型
1. Hash 数据类型简介
- 一个String 类型的 域 (field)和 值(value)的映射表
- 这里的 field 和 value 你可以看作String 数据类型里边的value,我想表达的意思是field 不是key
- 每个哈希表可以存储2^32-1 个键值对,差不多40多亿数据
- value一般用户存储Java的JOSN序列化对象
2. 设置哈希表域的值
HSET key field value
:::success
HSET 命令:为哈希表的域设置值
- 将key 中的field 的值设置为value
- key不存在,将会床架一个hash表进行操作
- key 和 field 存在,将覆盖原来的值
:::
HSETNX key field value
:::success
2.HSETNX命令:为哈希表不存在的域设值
- field 不存在时,将哈希表key 中的field 的值设置为value
- field 存在,命令将无效执行
- key存在,先创建key 在执行 HSETNX命令
:::
HMSET key field value [field value…]
:::success
HMSET 命令:设置多个域和值到哈希表中
- 将多个 feild value 设置到key中
- 会覆盖哈希表key 中所有原有的field
- key存在,先创建key 在执行 HMSET命令
:::
3. 获取哈希表中的域和值
HEGT key field
:::success
HGET 命令:获取哈希表中的域的值
- 获取 key中field 中的值
:::
HGETALL key
:::success
HGETALL 命令:获取哈希表中所有的域和值
- 返回的长度是哈希表长度的2倍
- key 不存在,返回空列表
:::
HMGET key field value [field value…]
:::success
HMGET 命令:获取多个域的值
- 获取key中多个field的值
- key中field不存在,返回nil
- key 不存在,也会返回nil
:::
:::danger
HKEYS key
:::
:::success
HKEYS 命令:获取哈希表中的所有域
- 获取key 中所有的 field
- key不存在,返回空表
:::
HVALS key
:::success
HVALS 命令:获取哈希表中所有的域的值
- 返回key 中 field 中的所有值
- key不存在,返回空表
:::
4 哈希表统计
HLEN key
:::success
HLEN 命令:统计哈希表中的域的数量
- 返回的是一个数值
- key 不村子啊,返回 0
:::
HSTRLEN key field
:::success
HSTRLEN 命令:统计哈希表中字符串长度
- 统计key中field中的字符串长度
- key中field 不存在,返回 0
:::
5. 哈希表中的域加上增量值
HINCRBY key field increment
:::success
HINCRBY 命令:为哈希表中的域加上增量值
- 当加上的值为负数时,就是减法操作
- key不存在,会先创建key,然后执行命令
- field 不存在,先初始化value 的值为0,然后再执行操作
- field的值不是数值,将会报错
- HINCRBY命令操作的值被限制再64位
:::
HINCRBYFLOAT key field increment
:::success
HINCRBYFLOAT 命令:为哈希表中的域加上浮点数增量值
- 为key 中field 的值 加上 浮点数增量值 increment
- key不存在,会先创建key,然后执行命令
- field 不存在,先初始化value 的值为0,然后再执行操作
- 在Redis 中,数字和浮点数都以字符串形式进行保存
- field 不是字符串,将会报错
- increment 不是双精度浮点数时,会报错
:::
6. 删除哈希表中的域
HDEL key field [field…]
:::success
HDEL 命令:删除哈希表中的多个域
- 它会忽略不存在的field 进行删除,也就是说:多个field中可能有不存在的field ,也会删除成功
- 返回删除field 的数量
:::
HEXISTS key field
:::success
HEXISTS 命令:判断哈希表中的域是否存在
- field 存在,返回1
- key 和 field 不存在,返回 0
:::
🎈看完了不妨给我点个赞吧,👉你的支持,是我每天更新的动力…