1。总结:

我们可以看到哈希类型Redis作为一个字符串键和字符串值地图容器。所以这种类型存储的值对象的信息是非常适合的,如用户名、密码、年龄等。如果哈希包含几个字段,然后数据类型将只占用一点磁盘空间。每个哈希可以存储4294967295个键-值对。

两。相关命令列表:





命令的原型
时间复杂度
命令描述
返回值


HSET关键字段值
o(1)
为指定的键设置字段值对。如果键不存在,则命令将在参数中创建具有字段值对的新密钥。如果参数中的字段已经存在于键中,则将使用新值来覆盖其原始值。
1表示新字段设置了一个新值,0表示字段已经存在,并用新值重写原始值。


hget关键领域
o(1)
返回指定键中指定字段的关联值。
返回参数中字段的关联值,如果参数中的键或字段不存储,则返回零。


hexistskey场
o(1)
确定指定键中的指定字段是否存在。
1表示存在,0表示参数中的字段或键不存在。


海伦关键
o(1)
获取键中包含的字段数。
返回键包含的字段数,如果键不存在,返回0。


HDEL关键领域{场…}
O(n)
n在复杂性代表字段的数量是在参数删除时间。删除多个字段中指定的参数从哈希值指定的键,如果不存在的字段将被忽略。如果键不存在,认为它是一个空的哈希值并返回0。
实际删除的字段数。


hsetnxkey字段值
o(1)
只有当参数中的键或字段不存在时,才为指定的键设置字段值对,否则命令将不执行任何操作。
1表示一个新字段被设置为一个新值,0表示键或字段已经存在,命令没有操作。


hincrbykey场增量
o(1)
添加的值,指定在指定的键字段关联的值。如果关键或字段不存在,该命令将创建一个新的密钥或新领域,初始化相关的值0,然后指定数量的增加操作。该命令支持的是一个64位有符号整数,,是多少,可以增加负。
返回操作后的值。


hgetallkey
O(n)
时间复杂性中的n表示键中包含的字段数。获取该键包含的所有字段值。它返回字段的格式、值等。
字段/值列表。


hkeyskey
O(n)
时间复杂性中的n表示键中包含的字段数。返回指定键的所有字段名。
Field名单。


hvalskey
O(n)
时间复杂性中的n表示键中包含的字段数。返回指定键的所有值名称。
价值清单。


hmgetkey场{场…}
O(n)
时间复杂性中的n表示请求的字段数。获取一组与参数中的字段相关联的值。如果请求的字段不存在,则其值返回为零。如果键不存在,则命令视为空散列,因此返回一组零。
返回与菲尔兹请求相关联的一组值,其返回顺序相当于字段请求的顺序。


hmset关键字段值字段值{…}
O(n)
时间复杂度中的n表示所设置的字段数。成对对设置参数中给定的字段值对。如果某个字段已经存在,则新值覆盖原始值。如果键不存在,则创建新的键,并设置参数中的字段值。








三。An example of the command:

1。hget HSET / / / / hexists HDEL海伦 / hsetnx:

复制代码代码如下所示:

#启动redis客户端程序的shell命令行

使用CLI / >

#关键myhash设置关键字段的字段值史蒂芬。

Redis 127.0.0.1:6379 > HSET myhash田史蒂芬

(整数)1

#获取关键myhash,字段是字段的值。

Redis 127.0.0.1:6379 > hget myhash field1

史蒂芬

在# myhash关键是没有专业的领域,所以回零。

Redis 127.0.0.1:6379 > hget myhash Field2

(无)

#到myhash哈希值增加时,相关的一个新领域,它的价值是刘。

Redis 127.0.0.1:6379 > HSET myhash Field2刘

(整数)1

对#数myhash关键领域。

Redis 127.0.0.1:6379 >海伦myhash

(整数)2

确定是否#领域称为田,有myhash债券由于返回值的存在是1。

Redis 127.0.0.1:6379> hexists myhash field1

(整数)1

#删除字段myhash关键字段命名字段,删除成功返回1。

Redis 127.0.0.1:6379 > HDEL myhash field1

(整数)1

#再次删除字段myhash关键字段命名字段,最后的命令已被删除,因为没有删除,返回0。

Redis 127.0.0.1:6379 > HDEL myhash field1

(整数)0

要确定是否存在myhash field1 #领域的关键,因为命令已被删除,因为0的回报。

Redis 127.0.0.1:6379 > hexists myhash field1

(整数)0

#通过hsetnx命令来添加一个新的领域myhash字段,其值为史蒂芬,因为这个领域已经被删除,所以命令添加成功,返回1。

Redis 127.0.0.1:6379 > hsetnx myhash田史蒂芬

(整数)1

#由于田场myhash已命令添加成功,因为这个命令不返回0后做任何操作。

Redis 127.0.0.1:6379 > hsetnx myhash田史蒂芬

(整数)0



2。HINCRBY:

复制代码代码如下所示:

#删除该键下面的样品测试。

Redis 127.0.0.1:6379 >删除myhash

(整数)1

#准备测试数据,对myhash字段字段设置为1。

Redis 127.0.0.1:6379 > HSET myhash字段5

(整数)1

#的myhash价值加上1场,再加上返回的结果。

Redis 127.0.0.1:6379 > hincrby myhash字段1

(整数)6

#到领域的myhash,加1的值,并返回结果。

Redis 127.0.0.1:6379 > hincrby myhash场- 1

(整数)5

#到领域的myhash,加10的值,并返回结果。

Redis 127.0.0.1:6379 > hincrby myhash场- 10

(整数)- 5



三.hgetall / / / hkeys hvals hmget / hmset:

复制代码代码如下所示:

#删除该键下面的样品测试。

Redis 127.0.0.1:6379 >删除myhash

(整数)1

#的关键myhash,一次性设置多个领域,分别为田= 你好

Redis 127.0.0.1:6379 > hmset myhash田你好时,世界

好啊

多领域#得到myhash债券,其中3并不存在,因为在无返回值的字段对应。

Redis 127.0.0.1:6379 > hmget myhash田2 3

1)你好

2)世界

3)(无)

所有的领域myhash #返回键和值,从结果中可以看出,他们是由上市。

Redis 127.0.0.1:6379 > hgetall myhash

1)田

2)你好

3)专业

4)世界

#只有得到所有的钥匙在名称字段myhash。

Redis 127.0.0.1:6379 > hkeys myhash

1)田

2)专业

#只有得到所有的价值观在myhash债券领域。

Redis 127.0.0.1:6379 > hvals myhash

1)你好

2)世界