Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
redis 的kv键值对,hash也是一种数据类型;
help @hash
HDEL key field [field ...]
summary: Delete one or more hash fields
since: 2.0.0
HEXISTS key field
summary: Determine if a hash field exists
since: 2.0.0
HGET key field
summary: Get the value of a hash field
since: 2.0.0
HGETALL key
summary: Get all the fields and values in a hash
since: 2.0.0
HINCRBY key field increment
summary: Increment the integer value of a hash field by the given number
since: 2.0.0
HINCRBYFLOAT key field increment
summary: Increment the float value of a hash field by the given amount
since: 2.6.0
HKEYS key
summary: Get all the fields in a hash
since: 2.0.0
HLEN key
summary: Get the number of fields in a hash
since: 2.0.0
HMGET key field [field ...]
summary: Get the values of all the given hash fields
since: 2.0.0
HMSET key field value [field value ...]
summary: Set multiple hash fields to multiple values
since: 2.0.0
HSCAN key cursor [MATCH pattern] [COUNT count]
summary: Incrementally iterate hash fields and associated values
since: 2.8.0
HSET key field value
summary: Set the string value of a hash field
since: 2.0.0
HSETNX key field value
summary: Set the value of a hash field, only if the field does not exist
since: 2.0.0
HSTRLEN key field
summary: Get the length of the value of a hash field
since: 3.2.0
HVALS key
summary: Get all the values in a hash
since: 2.0.0
127.0.0.1:6379>
Hset命令用法如下
HSET zyz zyz:name zhangsan set赋值
(integer) 1
127.0.0.1:6379> HSET zyz zyz:age 25
(integer) 1
127.0.0.1:6379> HGETALL zyz 获取k全部的map
1) "zyz:name"
2) "zhangsan"
3) "zyz:age"
4) "25"
127.0.0.1:6379> HEXISTS zyz zyz:name 验证是否存在
(integer) 1
127.0.0.1:6379> HEXISTS zyz zyz:salary
(integer) 0
127.0.0.1:6379> HGET zyz zyz:age 根据key的map的key获取单个v
"25"
127.0.0.1:6379> HINCRBY zyz zyz:age 1 数值加一
(integer) 26
127.0.0.1:6379> HGET zyz zyz:age
"26"
127.0.0.1:6379> HINCRBY zyz zyz:age -3 加减数值整数
(integer) 23
127.0.0.1:6379> HGET zyz zyz:age
"23"
127.0.0.1:6379> HINCRBYFLOAT zyz zyz:age 0.5 加减数值小数
"23.5"
127.0.0.1:6379> HINCRBYFLOAT zyz zyz:age -0.5
"23"
127.0.0.1:6379> HKEYS zyz 得到key所有的key
1) "zyz:name"
2) "zyz:age"
127.0.0.1:6379> HLEN zyz 得到key长度
(integer) 2
127.0.0.1:6379> HMGET zyz zyz:age zyz:name 获取多个k的value
1) "23"
2) "zhangsan"
127.0.0.1:6379> HMSET zyz zyz:address china zyz:company diaobaole zyz:love money
OK
127.0.0.1:6379> HLEN zyz
(integer) 5
127.0.0.1:6379> keys zyz
1) "zyz"
127.0.0.1:6379> HGETALL zyz
1) "zyz:name"
2) "zhangsan"
3) "zyz:age"
4) "23"
5) "zyz:address"
6) "china"
7) "zyz:company"
8) "diaobaole"
9) "zyz:love"
10) "money"
127.0.0.1:6379> HKEYS zyz
1) "zyz:name"
2) "zyz:age"
3) "zyz:address"
4) "zyz:company"
5) "zyz:love"
127.0.0.1:6379> HVALS zyz
1) "zhangsan"
2) "23"
3) "china"
4) "diaobaole"
5) "money"
127.0.0.1:6379> HGETALL zyz
1) "zyz:name"
2) "zhangsan"
3) "zyz:age"
4) "23"
5) "zyz:address"
6) "china"
7) "zyz:company"
8) "diaobaole"
9) "zyz:love"
10) "money"
127.0.0.1:6379> HSTRLEN zyz zyz:age
(integer) 2
127.0.0.1:6379> HSTRLEN zyz zyz:name
(integer) 8
127.0.0.1:6379> HSETNX zyz zyz:name zzz
(integer) 0
127.0.0.1:6379> HSETNX zyz zyz:school ly
(integer) 1
127.0.0.1:6379> HGETALL zyz
1) "zyz:name"
2) "zhangsan"
3) "zyz:age"
4) "23"
5) "zyz:address"
6) "china"
7) "zyz:company"
8) "diaobaole"
9) "zyz:love"
10) "money"
11) "zyz:school"
12) "ly"
127.0.0.1:6379> HDEL zyz zyz:school
(integer) 1
127.0.0.1:6379> HGETALL zyz
1) "zyz:name"
2) "zhangsan"
3) "zyz:age"
4) "23"
5) "zyz:address"
6) "china"
7) "zyz:company"
8) "diaobaole"
9) "zyz:love"
10) "money"