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。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qingqingyyds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值