008- Redis 数据结构 - hash类型


一、哈希类型:hash


   Redis的 hash 是一个 string 类型的 key 和 value 的映射表,这里的value是一系列的键值对,hash特别适合用于存储对象。


keyfieldvalue
user1username
age
school
楚子航
24
卡塞尔学院
user2username
age
school
路明非
21
卡塞尔学院

   哈希类型的数据操作总的思想是通过key和field操作value,key是数据标识,field是域,value是我们感兴趣的业务数据。

一、hash 数据的操作命令


1.hset key field value [field value …]

功能:将键值对field-value设置到哈希列表key中,如果key不存在,则新建哈希列表,然后执行赋值,如果key下的field已经存在,则value值覆盖。
返回值:返回设置成功的键值对个数。

127.0.0.1:6379> hset stu s1 80 s2 95 s3 98
(integer) 3

2.hget key field

功能:获取哈希表 key 中给定域 field 的值。
返回值:field 域的值;
    如果 key 不存在或者 field 不存在返回 nil。

127.0.0.1:6379> hget stu s1
"80"
127.0.0.1:6379> hget stu s5
(nil)

3.hmset key field value [field value…]

功能:同时将多个 field-value (域-值)设置到哈希表 key 中,此命令会覆盖已经存在的 field,hash 表 key 不存在,创建空的 hash 表,再执行 hmset。
返回值:返回设置成功的键值对个数。

127.0.0.1:6379> keys *
1) "stu"
127.0.0.1:6379> hmset stu s1 100
OK
127.0.0.1:6379> hget stu s1
"100"
127.0.0.1:6379> hmset stu1 s1 100
OK
127.0.0.1:6379> keys *
1) "stu"
2) "stu1"

4.hmget key field [field…]

功能:获取哈希表 key 中一个或多个给定域的值。
返回值:返回和field顺序对应的值;
    如果field不存在,返回nil

127.0.0.1:6379> hmget stu s1 s2 s9
1) "100"
2) "95"
3) (nil)
127.0.0.1:6379> 

5.hgetall key

功能:获取哈希表 key 中所有的域和值。
返回值:以列表形式返回hash中域和域的值
    如果 key 不存在,返回空 hash。

127.0.0.1:6379> keys *
1) "stu"
2) "stu1"
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> hgetall stu
1) "s1"
2) "100"
3) "s2"
4) "95"
5) "s3"
6) "98"
127.0.0.1:6379> hgetall stu2
(empty list or set)

6.hdel key field [field…]

功能:删除哈希表 key 中的一个或多个指定域field,不存在field直接忽略。
返回值:成功删除的field的数量。

127.0.0.1:6379> hgetall stu
1) "s1"
2) "100"
3) "s2"
4) "95"
5) "s3"
6) "98"
127.0.0.1:6379> hdel stu s1 s2
(integer) 2
127.0.0.1:6379> hgetall stu
1) "s3"
2) "98"

7.hlen key

功能:获取哈希表 key 中域 field 的个数。
返回值:数值,field的个数;
    key不存在返回0。

127.0.0.1:6379> hlen stu
(integer) 1

8.hexists key field

功能:查看哈希表 key 中,给定域 field 是否存在。
返回值:如果field存在,返回1,其他返回0。

127.0.0.1:6379> hexists stu s3
(integer) 1

9.hkeys key

功能:查看哈希表 key 中的所有field域列表。
返回值:包含所有field的列表,key 不存在返回空列表。

127.0.0.1:6379> hkeys stu
1) "s3"

10.hvals key

功能:返回哈希表 中所有域的值列表。
返回值:包含哈希表所有域值的列表,key 不存在返回空列表。

127.0.0.1:6379> hvals stu
1) "98"

11.hincrby key field int

功能:给哈希表 key 中的 field 域增加 int。
返回值:返回增加之后的 field 域的值。

127.0.0.1:6379> hincrby stu s3 2
(integer) 100

12.hincrbyfloat key field float

功能:给哈希表 key 中的 field 域增加 float 。
返回值:返回增加之后的 field 域的值。

127.0.0.1:6379> hincrbyfloat stu s3 2.5
"102.5"

13.hsetnx key field value

功能:将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在的时候才设置,否则不设置。
返回值:设值成功返回1,其他返回0。

127.0.0.1:6379> hsetnx stu s5 2.5
(integer) 1



写在最后

以上关于 Redis 中 hash 类型数据结构的具体内容,后续如果有时间的话我也将持续更新,如果有错误或者是哪里不足的地方,欢迎各位大大提出宝贵的意见呀~

此外,想了解关于 Redis 的一些其他使用命令使用方法可以关注下方公众号,后台回复 “redis ”即可获取,期待着您的光临~

在这里插入图片描述


相关链接:

链接: 007- Redis 数据结构 - set类型.
链接: 006 - Redis 数据结构 - List类型.
链接: 005 - Redis 数据结构 - String类型.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值