dot Redis 8 来了——而且是开源的

了解更多

Redis 数据结构

返回词汇表

Redis 数据结构的外观

如表 1.1 所示,Redis 允许我们存储映射到五种不同数据结构类型中任何一种的键;STRINGLISTSETHASHZSET。这五种不同的结构都具有一些共享命令(DELTYPERENAME 等),以及一些只能由一种或两种结构使用的命令。我们将在第 3 章更深入地探讨可用命令。

在 Redis 中可用的五种结构中,STRINGLISTHASH 对于大多数程序员来说应该很熟悉。它们的实现和语义类似于用多种其他语言构建的相同结构。一些编程语言也有一个集合数据结构,其实现和语义与 Redis SET 相当。ZSET 对于 Redis 来说有些独特,但当我们开始使用它们时会很方便。表 1.2 中可以看到 Redis 中可用的五种结构的比较、它们包含的内容以及对其语义的简要描述。

命令列表 当我们讨论本节中的每种数据类型时,您会发现一些小的命令表。每个类型的更完整(但部分)的命令列表可以在第 3 章中找到。如果您需要包含文档的完整命令列表,您可以访问 https://redis.ac.cn/commands

在本节中,您将看到如何表示所有这五种结构,并且您将有机会开始使用 Redis 命令,为后面的章节做准备。在本书中,所有示例均以 Python 提供。如果您已按照附录 A 中的描述安装了 Redis,则您还应该安装 Python 以及从 Python 使用 Redis 所需的库,作为该过程的一部分。如果可能,您应该拥有一台安装了 Redis、Python 和 redis-py 库的计算机,以便您可以在阅读时尝试所有内容。表 1.2 Redis 中可用的五种结构

结构类型它包含什么结构读/写能力
STRING字符串、整数或浮点值对整个字符串、部分字符串进行操作,递增/递减整数和浮点数
LIST字符串链表从两端推入或弹出项目,根据偏移量修剪,读取单个或多个项目,按值查找或删除项目
SET唯一字符串的无序集合添加、获取或删除单个项目,检查成员资格,交集、并集、差集、获取随机项目
HASH键到值的无序哈希表添加、获取或删除单个项目,获取整个哈希
ZSET(排序集)字符串成员到浮点分数的有序映射,按分数排序添加、获取或删除单个值,基于分数范围或成员值获取项目

关于安装 Redis 和 Python 的提醒 在继续之前,您需要安装 Redis 和 Python。同样,Redis 和 Python 的快速简便安装说明可以在附录 A 中找到。基于 Debian 的 Linux 发行版的更快更简单的说明如下:从 https://redis.ac.cn/download 下载 Redis,解压缩,运行 make && sudo make install,然后运行 sudo python -m easy_install redis hiredis (hiredis 是一个可选的性能提升 C 库)。

如果您熟悉过程式或面向对象编程语言,那么 Python 应该是可以理解的,即使您以前没有使用过它。如果您使用其他语言与 Redis 交互,您应该能够将我们使用 Python 所做的一切翻译成您的语言,尽管 Redis 命令的方法名称和它们采用的参数可能拼写(或顺序)不同。

Redis 与其他语言 尽管本书中未包含,但可以转换的所有代码清单都有 Ruby、JavaScript 和 Java 的翻译版本,可从 Manning 网站下载或从本书的 Manning 论坛链接。此翻译后的代码还包括类似的描述性注释,以便您可以用您选择的语言进行学习。

作为一种风格,我尝试将 Python 更高级功能的使用保持在最低限度,编写函数来对 Redis 执行操作,而不是构造类或其他方式。我这样做是为了防止 Python 的语法干扰本书的重点,即使用 Redis 解决问题,而不是“看看我们用 Python 可以做的这些很酷的事情”。在本节中,我们将使用 redis-cli 控制台与 Redis 交互。让我们从 Redis 中可用的第一个也是最简单的结构开始:STRING