散列简介
Redis 的散列键会将一个键和一个散列在数据库里关联起来,用户可以在散列中为任意多个字段(field)设置值。与字符串键一样,散列的字段和值既可以是文本数据,也可以是二进制数据。
通过使用散列键,用户可以把相关联的多项数据存储到同一个散列里面,以便对这些数据进行管理,或者针对它们执行批量操作。比如图 3-2 就展示了一个使用散列存储文章数据的例子,在这个例子中,散列的键为 article::10086,而这个键对应的散列则包含了 4 个字段,其中:
-
"title" 字段存储文章的标题 "greeting"。
-
"content" 字段存储文章的内容 "hello world"。
-
"author" 字段存储文章的作者名字 "peter"。
-
"create_at" 字段存储文章的创建时间 "1442744762.631885"。

Figure 1. 图3-2 使用散列存储文章数据
与之前使用字符串键存储文章数据的做法相比,使用散列存储文章数据只需要在数据库里面创建一个键,并且因为散列的字段名不需要添加任何前缀,所以它们可以直接反映字段值存储的是什么数据。
Redis 为散列键提供了一系列操作命令,通过使用这些命令,用户可以:
-
为散列的字段设置值,或者只在字段不存在的情况下为它设置值。
-
从散列里面获取给定字段的值。
-
对存储着数字值的字段执行加法操作或者减法操作。
-
检查给定字段是否存在于散列当中。
-
从散列中删除指定字段。
-
查看散列包含的字段数量。
-
一次为散列的多个字段设置值,或者一次从散列中获取多个字段的值。
-
获取散列包含的所有字段、所有值或者所有字段和值。
本章接下来将对以上提到的散列操作进行介绍,说明如何使用这些操作去构建各种有用的应用程序,并在最后详细地说明散列键与字符串键之间的区别。