Redis 4.0.0 GA 版现已推出!我的笔记如下:https://#/1YAiQM98cn
— Salvatore Sanfilippo (@antirez) 2017 年 7 月 14 日
7 月 14 日,Salvatore Sanfilippo (@antirez) 宣布备受期待的 Redis 4.0.0 GA 版本现已推出。 Redis 4 包含许多新功能,包括模块 API、PSYNC2(改进的复制机制)引擎,新缓存策略、异步删除操作、微控制器支持、Redis 集群改进、内存管理改进以及诸多其他更改与错误修复。
模块
Redis 4.0.0 中最大的功能之一是期待已久的模块系统和 Redis 内存容器,它于 2016 年 Redis 大会上宣布。 模块系统提供了一个 API,用于扩展 Redis,其中主要用 C 来动态加载模块。 模块 API为开发人员提供了多级 API,以便向 Redis 中添加新功能。
借助 Redis 模块,开发人员可以向现有数据类型添加新操作,引入新型数据类型(如)JSON,或使用新进程(如搜索或神经网络)来扩展 Redis。
新的 API 使得开发人员可以构建扩展,而这些扩展在使用 Lua 构建时,要么不实用,要么性能不足。 正如Redis.io 上的模块文档中所述,“Redis 模块让 [我们] 能够使用外部模块扩展 Redis 功能,以类似于核心自身的速度和功能实施新的 Redis 命令”。
缓存改进
对于许多 Redis 用户来说,缓存是他们使用 Redis 的简介,而 4.0.0 版本引入了新功能,以提高将 Redis 用于缓存时的性能。 4.0.0 版本添加了使用频率最低 (LFU) maxmemory 策略,为用户提供了另外一种算法,用于在 Redis 达到 maxmemory 阈值时逐出键。 对于许多应用程序来说,LFU 缓存提供比最近最少使用 (LRU) 缓存更好的命中率与未命中率之比。
在 Redis 中实施 LFU 缓存是通过一种近似算法来完成的,以便在不显著增加内存开销用于跟踪访问计数的情况下准确估计键访问的频率。 与当前的 LRU 缓存策略类似,LFU 缓存只能应用于易失键(设置到期)或应用于所有键。
可以在 Redis.io 上的将 Redis 用作 LRU 缓存的文章中找到 Redis 缓存策略的详细信息。
内存功能
萨尔瓦托雷的版本公告中,还重点介绍了与内存消耗相关的两项有用功能。它们增加了内存自省的新命令和主动内存碎片整理功能。
新的 MEMORY 命令向用户提供有关 Redis 实例的内存消耗的信息。MEMORY USAGE 命令为用户提供了特定键所用内存的确切数量,而 MEMORY DOCTOR 提供了一个框架(类似于 LATENCY DOCTOR 命令),用于观察实例的整体内存消耗。
恭喜萨尔瓦托雷 (@antirez) 将 4.0.0 版本推向 GA。还要感谢 所有参与该项目的贡献者为他们的辛勤工作和坚持不懈。