Redis 8.0携新功能,重新开源
01 引言
Redis从7.4版本起,将开源许可证改成 RSALv2(Redis 源代码可用许可证)与 SSPLv1(服务器端公共许可证)的双重授权策略。简单来说,就是不能随意商用。为了抵制Redis,Redis的替代品Valkey、KeyDB、Garnet 等项目迅速崛起,时之间,Redis 社区陷入分裂。
Redis 8.0选择AGPLv3 许可证,携带新功能,宣布重新开源。
02 新特性
Redis 8 是一个性能卓越且可扩展性强的版本,带来了诸多重大改进,包括超 30 项性能提升,新增 8 种数据结构。
2.1 性能提升
Redis 8 在单核和多核环境下都有超 30 项性能改进。与 Redis 7.2.5 相比,大量命令的延迟最多降低 87%。通过新的 I/O 线程实现,在多核英特尔 CPU 上设置 io - threads 参数为 8 时,每秒操作吞吐量可提升 112% 。
新的复制机制使复制时内存使用最多减少 35%,主节点在复制期间处理写操作的平均速率提高 7.5%,复制时间减少 18%。
通过水平和垂直扩展,Redis Query Engine 的查询处理能力提升 16 倍,使其成为市场上最快的向量数据库。
2.2 丰富的数据结构
新增 8 种数据结构。向量集(测试版)用于向量相似性搜索,扩展了排序集概念以处理高维向量嵌入,适用于语义搜索和推荐系统;
JSON 数据结构便于管理会话,可存储 JSON 文档并通过 JSONPath 语言高效访问和原子更新;时间序列数据结构简化了处理快速变化的带时间戳数据,采用高效压缩算法并支持定义压缩规则;
5 种概率数据结构(布隆过滤器、布谷鸟过滤器、Count - min sketch、Top - k、t - digest)能在牺牲一定准确性的前提下,更高效地处理数据流和大数据集相关问题。
2.3 功能与安全增强
Redis Query Engine 除了键查找外,还能实现快速数据访问,可创建哈希和 JSON 数据结构的二级索引,支持向量搜索、精确匹配和语义搜索等,并具备词干提取、同义词扩展和模糊匹配等功能。
Access Control Lists (ACLs) 提供更精细的安全控制,新增针对新数据结构的 ACL 类别,现有类别也涵盖了支持新数据结构的命令。
基于 Redis 7.4 新增了 HGETDEL、HGETEX、HSETEX 这 3 个哈希命令。
2.4 开发支持与兼容性
Redis 8 易于上手开发应用,得到多种高性能、可靠的开源客户端库支持,如 Jedis、Lettuce、go - redis 等。
若使用对象映射技术,Redis OM 客户端库可帮忙建模对象、添加模式验证并存储于 Redis 8。针对 GenAI 应用,提供 Redis 向量库(RedisVL),集成大语言模型实现语义搜索等功能。
Redis 8 与 Redis Insight 和 Redis for VS Code 完全兼容,其中 Redis Insight 集成了自然语言 AI 助手 Redis Copilot,提升数据和命令操作体验。
Redis 8.0 弃用了以前的 Redis 和 Redis Stack 版本,不再需要独立的 RediSearch、RedisJSON、RedisTimeSeries 和 RedisBloom,因为它们现在是 Redis 的一部分。
03 小结
Redis的开源闭源对于传统的企业或者个人用户没有什么影响,我们只要关注其功能就可以了。
之前分享了Redis7.x的安装和使用,要使用RedisJSON,还要自己安装 Redis Stack,虽然操作很简单,确实感觉确实有点不爽。好在Redis 8.0已经整合了Redis Stack,用起来应该会更加丝滑。
至于官方说的性能的提升,需要在实际应用中去体验。