六、Redis的Hash结构数据

1、概述

Redis的Hash结构类似于Java中的Map<String,Map<String,Stgring>>,键是字符串,值是另一个映射。结构如图:
这里写图片描述
因此Hash结构很适合用来存储对象。
这里的键相当于对象名称,字段类似对象中的属性名、值就类似对象的属性值

2、常用命令

2.1、 HSET、HSETNX和HGET(添加、获取)

- HSET
- 介绍:
这里写图片描述
1)Redis Hset 命令用于为哈希表中的字段赋值 。
2)如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
3)如果字段已经存在于哈希表中,旧值将被覆盖。

  • 返回值:
    如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0

  • 示例:
    这里写图片描述

- HSETNX
这里写图片描述
- 注意:
Hsetnx 命令用于为哈希表中不存在的的字段赋值 。
1)如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
2)如果字段已经存在于哈希表中,操作无效。
3)如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。

与HSET的区别在于,当字段存在时,HSET会覆盖,HSETNX不做任何操作

  • 返回值:
    设置成功,返回 1 。 如果给定字段已经存在且没有操作被执行,返回 0 。

  • 示例:

这里写图片描述

- HGET

  • 介绍:
    这里写图片描述
    Hget 命令用于返回哈希表中指定字段的值。

  • 返回值:
    返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil

  • 示例:
    这里写图片描述

2.2、HEXISTS(是否存在)

这里写图片描述
- 基本语法:
HEXISTS KEY_NAME FIELD_NAME
- 返回值:
如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 。
- 示例:

这里写图片描述

2.3、HMSET和HMGET(批量的添加、获取)

  • 基本语法
    这两个命令与MSET和MGET类似,都是批量的添加和获取
    Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。此命令会覆盖哈希表中已存在的字段。
    这里写图片描述
    这里写图片描述
  • 返回结果:
    包含多个给定字段关联的值的列表,表值的排列顺序和指定字段的请求顺序一样。如果指定的字段不存在于哈希表,那么返回一个 nil 值。

  • 示例:
    这里写图片描述

2.4、HGETALL、HKEYS、HVALS(查询全部)

这里写图片描述
返回值:
指定key 的所有字段的名及值。返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍
示例:
这里写图片描述

这里写图片描述
示例:
这里写图片描述

这里写图片描述

注意:这个命令不是HVALUES,而是HVALS,是value 的缩写:val
示例:
这里写图片描述

2.5、HDEL(删除)

Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
这里写图片描述
语法:
HDEL key field1 [field2 … ]
返回值:
被成功删除字段的数量,不包括被忽略的字段
示例:
这里写图片描述

2.6、HINCRBY(自增)

这里写图片描述
- 注意:
1)Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。
2)增量也可以为负数,相当于对指定字段进行减法操作。
3)如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
4)如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
5)对一个储存非数字值的字段执行 HINCRBY 命令将造成一个错误。
- 语法:
HINCRBY key field amount
- 返回值:
执行 HINCRBY 命令之后,哈希表中字段的值。

  • 示例:
    这里写图片描述

2.7、HLEN(字段数量)

这里写图片描述

  • 返回值:
    哈希表中字段的数量。 当 key 不存在时,返回 0 。

  • 示例:
    这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值