散列简介

Redis 的散列键会将一个键和一个散列在数据库里面关联起来,用户可以在散列里面为任意多个字段(field)设置值。跟字符串键一样,散列的字段和值既可以是文本数据,也可以是二进制数据。

通过使用散列键,用户可以把相关联的多项数据储存到同一个散列里面,以便对这些数据进行管理,又或者针对它们执行批量操作。比如图 3-2 就展示了一个使用散列储存文章数据的例子,在这个例子中,散列的键为 article::10086 ,而这个键对应的散列则包含了四个字段,其中:

  • "title" 字段储存着文章的标题 "greeting"

  • "content" 字段储存着文章的内容 "hello world"

  • "author" 字段储存着文章的作者名字 "peter"

  • "create_at" 字段储存着文章的创建时间 "1442744762.631885"


图 3-2 使用散列储存文章数据_images/IMAGE_HASH_EXAMPLE.png


与之前使用字符串键储存文章数据的做法相比,使用散列储存文章数据只需要在数据库里面创建一个键,并且因为散列的字段名不需要添加任何前缀,所以它们可以直接反映字段值储存的是什么数据。

Redis 为散列键提供了一系列操作命令,通过使用这些命令,用户可以:

  • 为散列的字段设置值,又或者只在字段不存在的情况下为它设置值。

  • 从散列里面获取给定字段的值。

  • 对储存着数字值的字段执行加法操作或者减法操作。

  • 检查给定字段是否存在于散列当中。

  • 从散列里面删除指定字段。

  • 查看散列包含的字段数量。

  • 一次为散列的多个字段设置值,又或者一次从散列里面获取多个字段的值。

  • 获取散列包含的所有字段、所有值又或者所有字段和值。

本章接下来将对以上提到的散列操作进行介绍,说明如何使用这些操作去构建各种有用的应用程序,并在最后详细地说明散列键与字符串键之间的区别。