圆点 极速的未来即将来到你所在的城市的一场活动中。

加入我们参加 Redis 发布会

Redis 5.0 发布了!

上周,Redis 发布了 5.0 版本,包含了各种进步和改进,成为一个重要的里程碑。其中最重大的事件是将 Streams 作为版本的一部分引入。Streams 是自 2014 年 4 月(四年前!)将 HyperLogLog 作为 2.8.9 版本的一部分引入以来,Redis 中的第一个全新数据结构!

Streams

您可能会问,什么是 Redis Streams?Redis Stream 是一个类似于日志的数据结构,它允许您将多个字段和字符串值与基于时间的自动序列存储在单个键中。在很多方面,Stream 类似于其他 Redis 数据结构 - 它以类似于列表的方式对数据进行排序,存储类似于哈希的字段和值,它使您能够读取一系列值,就像使用有序集合一样,并且它可以像发布/订阅(或列表)一样具备阻止等待项目到达的行为,从而允许对流执行实时反应。

话虽如此,Redis Stream 明显是其自身的一项功能。并不恰当的说它们就像结构 foo 但具有功能 bar。Redis Streams 具备一个独特的特性,使之区别于任何其他现有数据结构:允许各个客户端使用自己的位置来使用流的消费者组。这为 Redis 提供了一系列全新的用途;现在,诸如事件协调或统一日志架构之类的任务不仅是可能的,而且也得到了优化。与任何 Redis 数据结构一样,也有许多命令(实际上有 13 个)允许您与结构进行交互 - 您可以在 redis.io 上找到这些命令的列表。

ZPOP 和朋友

随着最新版本的发布,有序集合现在获得了一些新命令,允许您移除有序集合中分数最高(ZPOPMAX)或最低(ZPOPMIN)的成员。这是一项经常被请求的功能,它支持一些以前只能通过 Lua 脚本访问的新模式。

伴随 ZPOPMIN 和 ZPOPMAX 的是阻止变体(BZPOPMIN/BZPOPMAX),它们将等待值到达,类似于列表的阻止行为(例如 BLPOP)。因此,您现在不仅可以移除最高或最低值,还可以等待成员到达。

其他改进

除新命令和数据结构之外,5.0 版本还包括对现有内部的许多改进,包括

  • 新的模块 API 功能

  • HyperLogLog 实现的改进

  • 许多子命令的 HELP

  • 内存管理和报告方面的增强功能

  • RDB 存储有关键的频率和最新信息(即 LFU、LRU)

  • Lua 副本和 AOF 改进

  • 网络和客户端连接管理方面的改进

  • 客户端识别和客户端之间的阻止管理

为了增加一些趣味性,我们还添加了无用 但有趣 的 LOLWUT 命令,该命令使用随机元素和命令参数生成一些计算机艺术。它没有重要的技术目的,但它可能是一个很好的测试,看看在连接到一个未知版本实例时 Redis 5.0 是否运行正常。

Art inside a database command

(摘自 LOLWUT:数据库命令中的一件艺术品)

有关改进的更多详细信息或背景介绍,欢迎查看 发行说明

Redis 企业版

如果你急于在企业中尝试 Redis 5.0 —— 尤其是 Stream,你可以下载 Redis Enterprise 软件 5.4,其中包括 Redis 5.0。并且你可以在我们全面托管的 VPC 产品上运行它。

愉快地使用数据流吧!