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 Cluster 改进、内存管理改进以及 大量其他更改和错误修复。
模块
Redis 4.0.0 中最大的功能之一是期待已久的模块系统 & Redis 内存 docker,该系统是在 RedisConf 2016 上宣布的。 该模块系统提供了一个 API,用于通过动态加载的模块(主要用 C 编写)来扩展 Redis。 该模块 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 缓存策略的详细信息,请参阅 Redis.io 上的 将 Redis 用作 LRU 缓存 文章。
内存特性
Salvatore 的发布公告中还强调了两个与内存消耗相关的有用特性。 它们是添加了用于内存自检的新命令和添加了活动内存碎片整理。
新的 MEMORY 命令为用户提供了 Redis 实例的内存消耗信息。 MEMORY USAGE 命令为用户提供了给定键正在使用的精确内存量,而 MEMORY DOCTOR 提供了一个框架(类似于 LATENCY DOCTOR 命令),用于观察实例的整体内存消耗。
祝贺 Salvatore (@antirez) 获得 4.0.0 GA 版本。 还要感谢 所有参与该项目的贡献者的辛勤工作和毅力。