redis中的hash类型和常用命令详解

hash类型

Redis 中的 hash 类型是一个键对应多个键值对的数据类型(hash类型是 一个键(key) 对应多个 字段和值(field 和 value) 的一个数据类型, 即: 嵌套键值对), 类似于 java 中的 hashmapGo语言中的 map 类型, 适用于存储对象的场景, 如用户信息、商品信息等。

值得注意的是 hash 的字段不能嵌套其他数据结构,值只能是字符串。

形式如下:

key: { field1: value1, field2: value2, ... }

常用命令

1. HSET

设置字段值, 若该 key 已存在, 则将该 key 覆盖, 若不存在, 则创建。

语法:

HSET key field value [field value ...]

2. HSETNX

仅在指定字段不存在时设置其值,可以确保操作的原子性和安全性。

语法:

HSETNX key field value

3. HGET

获取指定key指定字段值, 若指定的 key 类型不是 hash 或 不存在则报错

语法:

HGET key field

4. HGETALL

获取指定的 key所有字段值, 若指定的 key 类型不是 hash 或 不存在则报错

当使用 HGETALL 命令时,返回的列表结构是每个字段名后面紧跟对应的值,因此整个列表的元素数量是哈希表中字段数量的两倍

语法:

HGETALL key

5.HDEL

删除指定的 hash 中的指定字段, 若删除完成后没有字段, 则删除指定的 hash 并返回 0

语法:

HDEL key field [field ...]

6.HLEN

获取存储在的 hash 中包含的字段数。

语法:

HLEN key

7. HEXISTS

检查指定的 hash字段是否存在, 若存在则返回 true, 否则返回 false

语法:

HEXISTS key field

8.HKEYS

获取指定 hash 的所有字段名

语法:

HKEYS key

9.HVALS

获取指定 hash 中的所有字段对应的值

语法:

HVALS key

10.HINCRBY

对指定 hash 中指定字段所对应的整数值进行增减。

特别的

1.  因为 `HINCRBY` 命令对数值的增减是原子性的, 所以适合高并发场景, 保证并发场景下数据的一致性, 且范围在 64位有符号数内。
2.  `HINCRBY` 会自动初始化
  * 若 `key` 不存在, 则自动创建空 `hash` 并执行操作
  * 若 `field` 不存在, 则自动初始化字段为 **0** 后再增减

注: 若字段所对应的值不是整数, 则报错

语法:

HINCRBY key field increment

11.HINCRBYFLOAT

对指定 hash 中指定字段所对应的浮点数值进行增减。

特别的

1.  因为 `HINCRBYFLOAT` 命令对数值的增减是原子性的, 所以适合高并发场景, 保证并发场景下数据的一致性, 且范围在 64位有符号数内。
2.  `HINCRBYFLOAT` 会自动初始化
  * 若 `key` 不存在, 则自动创建空 `hash` 并执行操作
  * 若 `field` 不存在, 则自动初始化字段为 **0.0** 后再增减
3.  高精度
  * 支持17位小数的精度, 整数部分最多表示17位
  * 若结果为恰巧为整数, 则结果存储时会移除末尾的零, 但计算过程保留完整精度

语法:

HINCRBYFLOAT key field increment
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值