评论

收藏

[NoSQL] 六、Redis的Hash结构数据

数据库 数据库 发布于:2021-07-08 16:52 | 阅读数:548 | 评论:0

  1、概述
  Redis的Hash结构类似于java中的Map<String,Map<String,Stgring>>,键是字符串,值是另一个映射。结构如图:
DSC0000.png
因此Hash结构很适合用来存储对象。
这里的键相当于对象名称,字段类似对象中的属性名、值就类似对象的属性值
2、常用命令
2.1、 HSET、HSETNX和HGET(添加、获取)
  - HSET
- 介绍:
DSC0001.png
1)Redis Hset 命令用于为哈希表中的字段赋值 。
2)如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
3)如果字段已经存在于哈希表中,旧值将被覆盖。

  •   返回值:
    如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0
  •   示例:
    DSC0002.png
  - HSETNX
DSC0003.png
- 注意:
Hsetnx 命令用于为哈希表中不存在的的字段赋值 。
1)如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
2)如果字段已经存在于哈希表中,操作无效。
3)如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。
  与HSET的区别在于,当字段存在时,HSET会覆盖,HSETNX不做任何操作

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

  - HGET

  •   介绍:
    DSC0005.png
    Hget 命令用于返回哈希表中指定字段的值。
  •   返回值:
    返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil
  •   示例:
    DSC0006.png
2.2、HEXISTS(是否存在)
DSC0007.png
- 基本语法:
HEXISTS KEY_NAME FIELD_NAME
- 返回值:
如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 。
- 示例:

DSC0008.png

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


  • 基本语法
    这两个命令与MSET和MGET类似,都是批量的添加和获取
    Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。此命令会覆盖哈希表中已存在的字段。
    DSC0009.png
    DSC00010.png
  •   返回结果:
    包含多个给定字段关联的值的列表,表值的排列顺序和指定字段的请求顺序一样。如果指定的字段不存在于哈希表,那么返回一个 nil 值。
  •   示例:
    DSC00011.png
2.4、HGETALL、HKEYS、HVALS(查询全部)
DSC00012.png
返回值:
指定key 的所有字段的名及值。返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍
示例:
DSC00013.png

DSC00014.png
示例:
DSC00015.png

DSC00016.png

  注意:这个命令不是HVALUES,而是HVALS,是value 的缩写:val
示例:
DSC00017.png
2.5、HDEL(删除)
  Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
DSC00018.png
语法:
HDEL key field1 [field2 … ]
返回值:
被成功删除字段的数量,不包括被忽略的字段
示例:
DSC00019.png
2.6、HINCRBY(自增)
DSC00020.png
- 注意:
1)Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。
2)增量也可以为负数,相当于对指定字段进行减法操作。
3)如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
4)如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
5)对一个储存非数字值的字段执行 HINCRBY 命令将造成一个错误。
- 语法:
HINCRBY key field amount
- 返回值:
执行 HINCRBY 命令之后,哈希表中字段的值。


  • 示例:
    DSC00021.png
2.7、HLEN(字段数量)
DSC00022.png


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


  
分享到: QQ好友和群QQ好友和群
评论

使用道具 举报