当前位置:   article > 正文

Redis学习数据类型(二)之哈希类型_redis哈希类型

redis哈希类型

1.Redis数据类型之哈希

Redis的Hash类型是一个String类型的域(field)和值(value)的映射表,Hash数据类型常常用来存储对象信息。在Redis中,每个哈希表可以存储2^32-1个键值对,也就就是40多亿个数据。

1.1设置哈希表域的值

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

命令格式:

HSET key field value

使用HSET命令将哈希表key中的field的值设置为value。当这个key不存在时,将会创建一个新的哈希表进行HSET操作。如果field已经存在于哈希表中,那么新值将会覆盖旧值。

返回值:在哈希表中,如果field是一个新建域,并且HSET操作成功了,则将会返回1;如果哈希表中已经存在field,那么在新值覆盖旧值后,将会返回0.

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

命令格式:

HSETNX key field value

使用HSETNX命令当且仅当域field不存在时,将哈希表key中的field的值设置为value。如果field已经存在,那么HSETNX命令将会执行无效。如果key不存在,则会首先创建一个新的key,然后执行HSETNX命令。

返回值:设置成功则返回1;如果field已经存在,设置失败,则将会返回0;

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

命令格式:

HMSET key field value [field value...]

HMSET命令用于将一个或多个域-值(field-value)对设置到哈希表key中。执行该命令后,将会覆盖哈希表key中原有的域。当key不存在时,会创建一个空的哈希表并执行HMSET操作。

返回值:当HMSET命令执行成功时,返回ok;当key不是哈希类型时,直接返回错误。

2获取哈希表中的域和值

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

命令格式:

HGET key field

使用HGET命令获取哈希表key中field的值。

返回值:返回field的值;如果这个key不存在,或者field不存在,则将返回nil。

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

命令格式:

HGETALL key

使用HGETALL命令获取哈希表key中所有的field和value。

返回值:执行该命令后,将会以列表的形式返回哈希表中的域(field)和值(value)。

此时返回值的长度是哈希表的两倍,如果这个key不存在则返回空列表。

3.HMGET命令:获取多个域的值

命令格式:

HMGET key field [field...]

HMGET命令用于获取哈希表key中一个或多个field的值。如果哈希表key中不存在这个field,则返回nil。而如果key不存在,则将会被当作一个空哈希表来处理,也会返回nil。

返回值:执行HMGET命令后,将会返回一个包含多个指定域(filed)的关联值的表,表中值的顺序与给定域参数的请求顺序保存一致。

4.HKEYS命令:获取哈希表中的所有域

命令格式:

HKEYS key

HKEYS命令用于获取哈希表key中的所有域(field)。

返回值:执行该命令后,将会返回包含这个哈希表key中的所有域的表。当key不存在时,返回一个空表。

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

命令格式:

HVALS key

HVALS 命令用于返回哈希表中所有域的值。

返回值:返回一个包含哈希表key中所有域的值的表。当key不存在时,返回一个空表

3哈希表统计

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

命令格式:

HLEN key

HLEN命令用于统计哈希表key中域的数量。

返回值:返回哈希表key中的域的数量,时一个数值。如果key不存在,则返回0,表示一个域也没有。

2.HSTRLEN命令:统计域的值和字符串长度

命令格式:

HSTRLEN key field

HSTRLEN命令用于统计哈希表key中与给定域(field)相关联的值的字符串长度。当key或field不存在时,该命令返回0。

返回值:执行该命令后,将会返回一个整数,这个整数大小或等于0。

4为哈希表中的域加上增量值

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

命令格式:

HINCRBY key field increment

HINCRBY命令用于为哈希表key中field的值加上增值量(increment)。

返回值:返回执行命令之后的新值,也就是哈希表key中域(field)的值。

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

命令格式:

HINCRBYFLOAT key field increment

HINCRBYFLOAT命令用于为哈希表key中field的值加上浮点数增量值(increment)。

如果key不存在,则该命令会先创建一个新的哈希表key,在创建field,最后执行浮点数加法操作。而如果field不存在,则该命令会先将field的值初始化为0,再执行浮点数加法操作。

返回值:返回执行该命令之后field的新值。

5删除哈希表中的域

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

命令格式:

HDEL key field [field...]

HDEL命令用于删除哈希表key中的一个或多个指定域(field),它会忽略不存在的域。

返回值:执行该命令后,将会返回删除的域的数量,其中不包括被忽略的域;

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

命令格式:

HEXISTS key field

HEXISTS命令用于判断哈希表key中的field是否存在;

返回值:如果这个field存在,则返回1;如果这个哈希表的key不存在,或者field不存在,则返回0。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/848358
推荐阅读
相关标签
  

闽ICP备14008679号