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,用起来应该会更加丝滑。

至于官方说的性能的提升,需要在实际应用中去体验。

相关推荐
郑州光合科技余经理2 分钟前
PHP构建:支撑欧美澳市场的同城生活服务平台开发
java·开发语言·数据库·uni-app·php·排序算法·生活
JIngJaneIL9 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
微学AI9 小时前
复杂时序场景的突围:金仓数据库是凭借什么超越InfluxDB?
数据库
廋到被风吹走9 小时前
【数据库】【Redis】定位、优势、场景与持久化机制解析
数据库·redis·缓存
有想法的py工程师10 小时前
PostgreSQL + Debezium CDC 踩坑总结
数据库·postgresql
Nandeska11 小时前
2、数据库的索引与底层数据结构
数据结构·数据库
小卒过河010411 小时前
使用apache nifi 从数据库文件表路径拉取远程文件至远程服务器目的地址
运维·服务器·数据库
过期动态11 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
Mr.朱鹏11 小时前
SQL深度分页问题案例实战
java·数据库·spring boot·sql·spring·spring cloud·kafka
一位代码11 小时前
mysql | 常见日期函数使用及格式转换方法
数据库·mysql