1、官网map对应的所有命令
https://redis.io/commands/?group=hash
2、限制
每个哈希最多可以存储4,294,967,295(2^32 - 1)个字段值对。实际上,你的哈希值只受Redis部署虚拟机内存总量的限制。
3、基本命令
HSET设置一个或多个散列字段的值。
HGET返回给定字段的值。
HGETALL返回给定key的所有key-value。
> HSET user:123 username martina firstName Martina lastName Elisa country GB
(integer) 4
> HGET user:123 username
"martina"
> HGETALL user:123
1) "username"
2) "martina"
3) "firstName"
4) "Martina"
5) "lastName"
6) "Elisa"
7) "country"
8) "GB"
HMGET返回一个或多个给定字段的值。
> HGETALL user:123 username firstName
1) "martina"
2) "Martina"
HSETNX如果字段是散列中的新字段,且value已设置,则为1。
如果字段已经存在于散列中且未执行任何操作,则返回0。
> HSETNX myhash field "Hello"
(integer) 1
> HSETNX myhash field "World"
(integer) 0
> HGET myhash field
"Hello"
HKEYS获取集合中所有的field
> HSET myhash field1 "Hello"
(integer) 1
> HSET myhash field2 "World"
(integer) 1
> HKEYS myhash
1) "field1"
2) "field2"
HVALS获取集合中field对应的所有value值
> HVALS myhash
1) "Hello"
2) "World"
HINCRBY将给定字段的值加所提供的整数。
> HINCRBY device:777:stats pings 1
(integer) 1
> HINCRBY device:777:stats pings 1
(integer) 2
> HINCRBY device:777:stats pings 1
(integer) 3
> HINCRBY device:777:stats errors 1
(integer) 1
> HINCRBY device:777:stats requests 1
(integer) 1
> HGET device:777:stats pings
"3"
> HMGET device:777:stats requests errors
1) "1"
2) "1"
4、性能
大多数Redis哈希命令是O(1)。一些命令(如HKEYS、HVALS和HGETALL)是O(n),其中n是字段值对的数量。