Redis五大基本类型——Hash哈希命令详解(命令用法详解+思维导图详解)

目录

一、Hash哈希类型介绍

二、常见命令

1、HSET

2、HGET

3、HEXISTS

4、HDEL

5、HKEYS

6、HVALS

7、HGETALL

8、HMGET

9、HMSET

10、HLEN

11、HSETNX

12、HINCRBY

13、HINCRBYFLOAT

14、HSTRLEN

·几个命令的对比

三、命令小结


一、Hash哈希类型介绍

        在Redis中,哈希类型的值本身又是一个键值对结构,例如key="key" value={{field1,value1},{field2,value2}……{field n,value n}}。


字符串和哈希类型的对比:

       哈希类型中的映射关系通常称为 field-value,用于区分Redis整体的键值对 key-value

二、常见命令

1、HSET

        设置hash中指定的字段(field)和值(value)。

语法:

HSET key field value [field value ...]

返回值:

添加的字段的个数

示例:

127.0.0.1:6379> HSET mykey dog wang~
(integer) 1
127.0.0.1:6379> HSET mykey field1 value1 field2 value2
(integer) 2
127.0.0.1:6379> hget mykey dog
"wang~"
127.0.0.1:6379> hget mykey field1
"value1"
127.0.0.1:6379> hget mykey field2
"value2"

2、HGET

        获取hash中指定的字段的值。

语法:

HGET key field

返回值:

字段对应的值,或者nil

示例:

127.0.0.1:6379> hset mykey field1 value1
(integer) 1
127.0.0.1:6379> HGET mykey field1
"value1"
127.0.0.1:6379> HGET mykey field2
(nil)

3、HEXISTS

        判断hash中是否有指定字段。

语法:

HEXISTS key field

返回值:

1表示存在,0表示不存在

示例:

127.0.0.1:6379> hset key1 field1 value1
(integer) 1
127.0.0.1:6379> EXISTS key1
(integer) 1
127.0.0.1:6379> EXISTS key2
(integer) 0

4、HDEL

        删除hash中指定的字段。

语法:

HDEL key field [field ...]

返回值:

本次操作删除的字段个数

示例:

127.0.0.1:6379> hset mykey field1 111 field2 222 field3 333
(integer) 3
127.0.0.1:6379> HDEL mykey field1
(integer) 1
127.0.0.1:6379> hexists mykey field1
(integer) 0
127.0.0.1:6379> HDEL mykey field2 field3
(integer) 2
127.0.0.1:6379> hexists mykey field2
(integer) 0
127.0.0.1:6379> hexists mykey field3
(integer) 0

5、HKEYS

        获取hash中的所有字段。

语法:

HKEYS key

返回值:

字段列表,若字段列表为空则返回 empty array

示例:

127.0.0.1:6379> hset mykey field1 111 field2 222 field3 333
(integer) 3
127.0.0.1:6379> HKEYS mykey
1) "field1"
2) "field2"
3) "field3"
127.0.0.1:6379> HKEYS key
(empty array)

6、HVALS

        获取hash中的所有的值。

语法:

HVALS key

返回值:

字段内所有的值

示例:

127.0.0.1:6379> hset mykey field1 111 field2 222 field3 333
(integer) 3
127.0.0.1:6379> HVALS mykey
1) "111"
2) "222"
3) "333"

7、HGETALL

        获取hash中所有的字段以及对应的值。

语法:

HGETALL key

返回值:

所有字段和其对应的值

示例:

127.0.0.1:6379> hset mykey field1 111 field2 222 field3 333
(integer) 3
127.0.0.1:6379> HGETALL mykey
1) "field1"
2) "111"
3) "field2"
4) "222"
5) "field3"
6) "333"

8、HMGET

        一次性获取hash中多个字段的值。

语法:

HMGET key field [field ...]

返回值:

字段对应的值,或者nil

示例:

127.0.0.1:6379> hset mykey field1 111 field2 222 field3 333
(integer) 3
127.0.0.1:6379> HMGET mykey field1
1) "111"
127.0.0.1:6379> HMGET mykey field1 field2 field3
1) "111"
2) "222"
3) "333"
127.0.0.1:6379> HMGET mykey field1 field2 field3 field4
1) "111"
2) "222"
3) "333"
4) (nil)

9、HMSET

        设置多个hash中指定的字段(field)和值(value)。

语法:

HMSET key field value [field value ...]

返回值:

添加成功返回OK

示例:

127.0.0.1:6379> HMSET mkey field1 111 field2 222 field3 333
OK
127.0.0.1:6379> HKEYS mkey
1) "field1"
2) "field2"
3) "field3"
127.0.0.1:6379> HSET key field1 111 field2 222 field3 333
(integer) 3
127.0.0.1:6379> HKEYS key
1) "field1"
2) "field2"
3) "field3"

10、HLEN

        获取hash中所有的字段的个数。

语法:

HLEN key

返回值:

字段个数

示例:

127.0.0.1:6379> hset mykey field1 111 field2 222 field3 333
(integer) 3
127.0.0.1:6379> HLEN mykey
(integer) 3
127.0.0.1:6379> HLEN key1
(integer) 0

11、HSETNX

        仅在字段不存在的情况下,设置hash中的字段和值。

语法:

HSETNX key field value

返回值:

设置成功返回1,设置失败返回0

示例:

127.0.0.1:6379> hset key field1 111
(integer) 1
127.0.0.1:6379> HSETNX key field1 101
(integer) 0
127.0.0.1:6379> HSETNX key field2 222
(integer) 1
127.0.0.1:6379> HGETALL key
1) "field1"
2) "111"
3) "field2"
4) "222"

12、HINCRBY

        将hash中字段对应的数值添加指定的值。如果key或field不存在,则视为对应的value是0,创建对应的key或value;如果key对应的字段不是一个整数或者范围超过了64位有符号整数,则报错。

语法:

HINCRBY key field increment

返回值:

添加后的值

示例:

127.0.0.1:6379> hset mykey field1 111 field2 222
(integer) 2
127.0.0.1:6379> HINCRBY mykey field1 1
(integer) 112
127.0.0.1:6379> HINCRBY mykey field3 333  #field3不存在
(integer) 333

127.0.0.1:6379> HKEYS nilkey    #nilkey不存在
(empty array)
127.0.0.1:6379> HINCRBY nilkey field 11111
(integer) 11111
127.0.0.1:6379> hget nilkey field
"11111"

127.0.0.1:6379> hset stkey field1 hello  #value类型不是整型
(integer) 1
127.0.0.1:6379> HINCRBY stkey field1 1
(error) ERR hash value is not an integer

13、HINCRBYFLOAT

        HINCRBY的浮点数版本,将hash中字段对应的数值添加指定的值。

语法:

HINCRBYFLOAT key field increment

返回值:

添加后的值

示例:

127.0.0.1:6379> hset mykey field1 1.1
(integer) 1
127.0.0.1:6379> hset mykey field2 2.2
(integer) 1
127.0.0.1:6379> HINCRBYFLOAT mykey field1 1.1
"2.2"
127.0.0.1:6379> HINCRBYFLOAT mykey field2 -1.1
"1.1"

127.0.0.1:6379> hset mykey field3 hello
(integer) 1
127.0.0.1:6379> HINCRBYFLOAT mykey field3 1
(error) ERR hash value is not a float

127.0.0.1:6379> HINCRBYFLOAT mykey field4 444
"444"
127.0.0.1:6379> HGETALL mykey
1) "field1"
2) "2.2"
3) "field2"
4) "1.1"
5) "field3"
6) "hello"
7) "field4"
8) "444"

14、HSTRLEN

        计算value字符串的长度。

语法:

HSTRLEN key field

返回值:

字符串的长度

示例:

127.0.0.1:6379> HSET key field1 hello!
(integer) 1
127.0.0.1:6379> HSTRLEN key field1
(integer) 6

·几个命令的对比

三、命令小结


         以上就是 Redis五大基本类型——Hash哈希命令详解(命令用法详解+思维导图详解)的全部内容了,希望能对你有所帮助!你的点赞收藏关注是对我最大的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值