Redis 更新开源许可证 - 不再支持云供应商提供商业化的 Redis

原文:Rowan Trollope - 2024.03.20
未来的 Redis 版本将继续在 RSALv2 和 SSPLv1 双许可证下提供源代码的免费和宽松使用;这些版本将整合先前仅在 Redis Stack 中可用的高级数据类型和处理引擎。
从今天开始,所有未来的 Redis 版本都将以开源许可证发布。从 Redis 7.4 版本开始,Redis 将采用 Redis Source Available License (RSALv2) 和 Server Side Public License (SSPLv1) 双许可证。因此,Redis 将不再按照三条款版本的伯克利软件发行(BSD)许可证下进行分发。
从成立的第一天起,Redis 就为支撑现代互联网的应用程序和数据基础设施,提供了性能和简单性的基础。现在,15 年过去了,我们很自豪地为全球的数百万开发者提供支持,支撑着世界每天都依赖的实时应用。我们已经为高级 Redis 模块实施了双许可证,这些模块都在 Redis Stack 发行版中,这一做法得到了社区的热烈欢迎。实际上,超过 50% 的 redis.io 下载量——从 Redis 6 版本开始——都来自 Redis Stack。我们现在认为,将这种许可证扩展到 Redis 本身,将使我们能够继续为用户发展最全面的数据模型、处理引擎和开发者能力。
新的开源许可证让我们能够持续提供宽松的源代码使用权限。我们正在引领 Redis 进入下一个发展阶段,作为一个拥有统一客户端、工具和核心 Redis 产品供应的实时数据平台。Redis 的源代码将继续免费提供给开发者、客户和合作伙伴,通过 Redis 社区版进行分享。未来的 Redis 开源版本将会统一核心的 Redis 和 Redis Stack,包括搜索、JSON、向量、概率数据模型和时间序列数据模型,以一种免费、易用的软件包的形式提供下载。这将使任何人都能轻松地在各种场景中使用 Redis,包括作为一个高性能的键/值和文档存储,一个强大的查询引擎,以及一个用于驱动生成式 AI 应用的低延迟向量数据库。
Redis 的成功带来了一系列独特的挑战。Redis 一直在赞助大部分的开发工作,同时也有一个活跃的开发者社区热衷于做出贡献。然而,Redis 的大部分商业销售都是通过最大的云服务供应商进行的,这些供应商将 Redis 的投资和其开源社区商品化。尽管我们努力支持社区主导的治理模式,也希望保持 BSD 许可证,但同时提供多种软件分发——包括开源、源可用以及为不同的本地和云平台优化的商业软件——这与我们成功推动 Redis 的未来的能力是相矛盾的。
根据新的许可证,托管 Redis 服务的云服务供应商,将不再被允许免费使用 Redis 的源代码。例如,云服务供应商只有在同意与 Redis(Redis 代码的维护者)的许可证条款后,才能提供 Redis 7.4。这些协议将支持现有的集成解决方案,并提供对即将到来的 Redis 创新的全面访问。
“我们期待继续合作,以支持开发者使用最新的数据存储和管理创新技术”,微软开发者部门总裁 Julia Liuson 表示。“我们的合作将继续支持像 Azure Cache for Redis 这样的集成解决方案,并将为微软客户提供对 Redis 服务中扩展功能的独家访问权限。”
实际上,对于 Redis 开发者社区来说,一切都没有变,他们将继续在双许可证下享受宽松的许可证。同时,所有由 Redis 负责的 Redis 客户端库将保持开源许可证。Redis 将继续通过其合作伙伴计划支持其庞大的合作伙伴生态系统——包括托管服务供应商和系统集成商——并提供对所有未来版本、更新和由 Redis 开发和提供的功能的独家访问权限。对现有的 Redis Enterprise 客户来说,一切都没有变化。
我们的新许可证方式在广泛提供 Redis 源代码,以最小的限制支持开发者社区,保护我们继续投资于功能丰富的免费软件和企业产品的能力之间,找到了最好的平衡。
正如我们一直所做的那样,我们的团队、社区以及客户与合作伙伴,将继续引领创建、推进和部署 Redis 作为领先的实时数据平台的道路。
更多信息详见:FAQ(https://redis.com/blog/redis-adopts-dual-source-available-licensing/)
相关文章:
Redis 更新开源许可证 - 不再支持云供应商提供商业化的 Redis
原文:Rowan Trollope - 2024.03.20 未来的 Redis 版本将继续在 RSALv2 和 SSPLv1 双许可证下提供源代码的免费和宽松使用;这些版本将整合先前仅在 Redis Stack 中可用的高级数据类型和处理引擎。 从今天开始,所有未来的 Redis 版本都将以开…...
生产者Producer往BufferQueue中写数据的过程
In normal operation, the producer calls dequeueBuffer() to get an empty buffer, fills it with data, then calls queueBuffer() to make it available to the consumer 代码如下: // XXX: Tests that fork a process to hold the BufferQueue must run bef…...
使用 Vite 和 Bun 构建前端
虽然 Vite 目前可以与 Bun 配合使用,但它尚未进行大量优化,也未调整以使用 Bun 的打包器、模块解析器或转译器。 Vite 可以与 Bun 完美兼容。从 Vite 的模板开始使用吧。 bun create vite my-app ✔ Select a framework: › React ✔ Select a variant:…...
如何设置IDEA远程连接服务器开发环境并结合cpolar实现ssh远程开发
文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境,并结合Cpolar内网穿透工具实现无公网远程连接…...
【项目管理后台】Vue3+Ts+Sass实战框架搭建二
Vue3TsSass搭建 git cz的配置mock 数据配置viteMockServe 建立mock/user.ts文件夹测试一下mock是否配置成功 axios二次封装解决env报错问题,ImportMeta”上不存在属性“env” 统一管理相关接口新建api/index.js 路由的配置建立router/index.ts将路由进行集中封装&am…...
制作一个RISC-V的操作系统六-bootstrap program(risv 引导程序)
文章目录 硬件基本概念qemu-virt地址映射系统引导CSRmachine模式下的csr对应的csr指令csrrwcsrrs mhartid引导程序做的事情判断当前hart是不是第一个hart初始化栈跳转到c语言的…...
haproxy和keepalived的区别与联系
HAProxy(High Availability Proxy) 是一个开源的、高效且可靠的解决方案,主要用于负载均衡。它工作在应用层(第七层),支持多种协议,如HTTP、HTTPS、FTP等。HAProxy通过健康检查机制持续监控后…...
云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度
作者:周静、吴宇奇、泮圣伟 在应用开发测试验证通过后、进行生产发布前,为了降低新版本发布带来的风险,期望能够先部署到灰度环境,用小部分业务流量进行全链路灰度验证,验证通过后再全量发布生产。本文主要介绍如何通…...
pta L1-004 计算摄氏温度
L1-004 计算摄氏温度 分数 5 全屏浏览 切换布局 作者 陈建海 单位 浙江大学 给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C5(F−32)/9。题目保证输入与输出均在整型范围内。 输入格式: 输入在一行中给出一个华氏…...
毕业论文降重(gpt+完美降重指令),sci论文降重gpt指令——超级好用,重复率低于4%
1. 降重方法:gpt降重指令 2. gpt网站 https://yiyan.baidu.com/ https://chat.openai.com/ 3. 降重指令——非常好用!!sci论文,本硕大论文都可使用! 请帮我把下面句子重新组织,通过调整句子逻辑࿰…...
Qt 多元素控件
Qt开发 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别 以 QTableWidget 和 QTableView 为例. QTableView 是基于 MVC 设计的控件. QTableView 自身不持有数据. 使用QTableView 的 …...
LeetCode热题Hot100-两数相加
一刷一刷 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不…...
Selenium 自动化 —— 浏览器窗口操作
更多内容请关注我的专栏: 入门和 Hello World 实例使用WebDriverManager自动下载驱动Selenium IDE录制、回放、导出Java源码 当用 Selenium 打开浏览器后,我们就可以通过 Selenium 对浏览器做各种操作,就像我们日常用鼠标和键盘操作浏览器一…...
二、Kubernetes(k8s)中部署项目wordpress(php博客项目,数据库mysql)
前期准备 1、关机顺序 2、开机顺序 (1)、k8s-ha1、k8s-ha2 (2)、master01、master02、master03 (3)、node01、node02 一、集群服务对外提供访问,需要通过Ingress代理发布域名 mast01上传 ingress-nginx.yaml node01、node02 上传 ingress-nginx.tar 、kube-webh…...
linux系统Kubernetes工具Service暴露服务
Service ServiceService创建service页面请求测试pod内部请求测试端口解析kube-proxy 使用ipvs 意义pod和Service的关系常用类型ClusterIpNodePortLoadBalancernode内网部署应用,外网访问不到 Service 服务基于ip端口的虚拟主机,定义一组pod的访问规则 Se…...
【算法篇】逐步理解动态规划1(斐波那契数列模型)
目录 斐波那契数列模型 1. 第N个泰波那契数 2.使用最小花费爬楼梯 3.解码方法 学过算法的应该知道,动态规划一直都是一个非常难的模块,无论是状态转移方程的定义还是dp表的填表,都非常难找到思路。在这个算法的支线专题中我会结合很多力…...
软件测试 - postman高级使用
断言 概念:让程序代替人判断测试用例执行的结果是否符合预期的一个过程 特点: postman断言使用js编写,断言写在postman的tests中 tests脚本在发送请求之后执行,会把断言的结果最终在testresult中进行展示 常用的postman提供的…...
数据交换技术
目录 <线路交换> <报文交换> <分组交换> 1.数据报分组交换 2.虚电路分组交换 计算机网络是以数据交换为目的的技术,从交换技术的发展过程来看,主要经历了线 路交换、报文交换、分组交换的过程。 <线路交换> 线路交换又称为…...
FFmpeg-- mp4文件合成1:aac和h264封装(c++实现)
文章目录 流程api核心代码muxer.hmuxer.cppaac 和 h264 封装为视频流,封装为c++的Muxter类 流程 分配视频文件上下文 int Init(const char *url); 创建流,赋值给视频的音频流和视频流 int AddStream(AVCodecContext *codec_ctx); 写视频流的head int SendHeader(); 写视频流的…...
【嵌入式开发 Linux 常用命令系列 1.3 -- 统计目录下有多少个文件】
统计目录下有多少个文件 在 Linux 中,你可以使用 find 命令和 wc(word count)命令的组合来统计当前目录及其子目录下的文件数量。如果你只对当前目录(不包括子目录)中的文件数量感兴趣,可以使用 ls 和 wc …...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
