Redis开源协议调整,我们怎么办?

news2024/11/28 6:32:03

2024年3月20日, Redis官方宣布,从 Redis 7.4版本开始,Redis将获得源可用许可证 ( RSALv2 ) 和服务器端公共许可证 ( SSPLv1 ) 的双重许可,时间点恰逢刚刚完成最新一轮融资,宣布的时机耐人寻味。

 

Redis协议调整,对云计算厂商的影响

Redis协议调整听起来可能没什么,但在开源项目领域是一个大问题。这并不是 Redis 官方第一次改变许可方式,早在 2018 年,Redis Labs 将其许可证从 AGPL 更改为Apache 2 modified with Commons Clause。Commons Clause在其许可之上增加了商业限制条款。

从Redis Labs 团队成员在网上发布的言论,可以了解到: “目前部分云提供商复用成功的开源项目,却没有为其社区做出重大贡献,他们将非其自行研发的软件产品通过重新打包的方式,转变成极具竞争力的云服务产品,并利用他们的业务优势从这些开源项目中获取可观的收入。”

不可否认,随着云计算技术的飞速发展,Redis作为一款流行的开源内存计算高速缓存,在云环境中将发挥着举足轻重的作用,其高效的数据处理能力和丰富的数据结构支持,使其成为众多企业应用和云服务产品的重要组件。

然而,随着云计算厂商纷纷推出相应的Redis之后,也面临着诸多方面的挑战:

  1. 合规性:Redis自2013年起,采用了BSD开源协议,允许云服务商自由分发和使用Redis代码,但随着Redis Labs引入Commons Clause补充条款之后,针对商业软件服务提供商便提出了额外限制,这意味着云厂商必须注意许可模式的变化,确保在提供托管Redis服务时符合开源协议的精神及其附加条款,避免潜在的法律风险。
  2. 技术创新与差异化:开源Redis虽然提供了基础功能,但为了在竞争激烈的云服务市场中脱颖而出,云计算厂商需要开发出具备差异化特性的高级功能或管理工具。如何在遵循开源协议的同时,增加诸如监控、备份恢复、安全防护等增值服务,是对云厂商技术研发能力的考验。
  3. 服务质量与SLA保障:云服务商提供的Redis服务不仅要保证开源版本的稳定性和性能,还需提供高质量的服务水平协议(SLA),包括高可用性、容灾恢复以及弹性扩展等,而这些特性往往需要在开源Redis基础上进行大量定制开发和优化工作。
  4. 维护与升级:云环境下的Redis集群需要及时更新至最新版本以获取最新的功能和安全修复。然而,不同客户可能依赖于不同的Redis版本,这就要求云厂商在提供统一服务的同时,必须处理好不同版本之间的兼容性和平滑升级的问题。

为了满足用户需求及顺应市场变化,各云厂商采取了以下对策:

  • 积极参与社区:云计算厂商应积极贡献开源社区,参与Redis核心功能的改进与发展,同时也通过这种方式获得社区的信任和支持,增强自身在开源生态中的影响力。
  • 自主创新与合作:建立专门的研发团队,针对Redis进行深度定制开发,推出自有知识产权的增强版Redis服务。此外,与Redis官方或其他第三方合作伙伴建立紧密联系,共同解决许可问题并寻求共赢解决方案。
  • 标准化服务与管理平台:构建完善的自动化运维平台,确保能够快速响应Redis实例的创建、扩容、迁移和维护等需求,同时提供可视化管理和监控工具,提升用户体验和运维效率。
  • 多样化的服务模式:根据客户需求提供多种服务模式,例如开源Redis的托管服务、基于Redis的企业版解决方案,甚至包含具有技术支持和个性化功能的高级服务包。

面对Redis开源协议带来的挑战,云计算厂商需在遵守许可规定的基础上,持续创新,提供优质服务,强化与开源社区的合作,并通过不断提升自身的技术服务实力,以满足日益增长的市场需求。在这个过程中,不仅推动了Redis技术在云端的应用普及,也促进了整个云计算行业的健康发展。

 

无惧Redis协议更改,华为云100%技术自主创新缓存更快更强

华为云分布式缓存服务DCS是华为云为客户提供的一款基于Redis内核的云服务,经过多年持续不断的投入与建设,较开源Redis在易用性、高性能、高可靠和性价比方面都具有显著的优势,已经成为企业信赖和依靠的一款优秀产品。

DCS与开源产品对比情况:

 

除此之外,DCS的研发团队也非常重视对开源社区的回馈。

截止发文日,过去一年在开源社区贡献排名第5,累计贡献排名第9;国内社区影响力排名第2;累计154次commit次数和138次PR,总共贡献13000+行代码。

在去年2023年,华为云分布式缓存服务DCS还特别推出了企业版,该企业版是100%自主创新开发的多线程高性能缓存,并且100%兼容Redis协议,较Redis不管是在多线程、内存效率还是高吞吐量上都完全超越对方。

Redis 5.x以前的单(主)线程模型,主线程主要处理新建网络链接接入、命令解析、命令执行、响应封装等,同时负责网络读写,当遇到网络阻塞或者高耗时任务,如命令执行时,则会导致时延增高。

随着计算硬件的性能提升,网络的读写成为系统性能提升的瓶颈,在Redis6.0以上,通过多线程模型处理网络读写,提升系统性能,主线程承接高时延的命令执行任务,考虑到多线程复杂度问题,在满足80%业务诉求的情况下,仍然采用单主线程。

在业务发展的同时,仍然需要能够把更高性能要求的硬件资源发挥到极致,那么,命令执行任务的时延问题就会成为性能提升的瓶颈,DCS企业版的核心解决思路就是通过完全的多主线程模型提升性能,并且100%兼容开源Redis,通过网络多线程调度模型,大大提升网络读写任务的并发量,保障秒级的读写性能,下面是实验室评测的一些数据:

20240329-180956(WeLinkPC).png

20240329-1182831(WeLinkPC).png

 可以看到,华为云DCS企业版Redis的QPS并发数优于基于开源Redis版本最大接近5倍,时延是其25%,完全遥遥领先。 

华为云分布式缓存服务DCS经过5年的发展,目前已经广泛应用于电商、社交文娱、游戏等行业。

在上云阶段通过专业的上云搬迁团队,提供贴身技术咨询和迁移实施支持服务,实现了应用“零改造”,搬迁上云业务无中断;上云后通过千万级的并发接入能力和百万级的读写能力保障秒杀商品“零等待”、订单无丢失、直播间礼物“零卡顿”等高难度应用场景,成为华为云客户信赖的最有价值的云服务。

 阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1562616.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

需要本地后端的真机调试-微信

打开和修改IP改为电脑与手机同一局域网的 不知道这个要不要

交通标志识别项目 | 基于Tensorflow+SSD实现道路交通标志识别

项目应用场景 面向智能驾驶或自动驾驶场景道路道路交通标志的识别,在交通标志识别的基础上为下一步的智能决策提供前提 项目效果: 项目细节 > 具体参见项目 README.md (1) 安装依赖 Python3.5、TensorFlow v0.12.0、Pickle、OpenCV-Python、Matplotl…

宁波ISO45001:2018职业健康与安全管理体系认证

🤓ISO45001:2018职业健康与安全管理体系认证 ISO45001(OHSAS18001)全称🍉是职业安全卫生🍐管理标准,是国际上🥕继ISO9000质量管理体系🌴标准和ISO14000环境管理&#x1f…

主站设备通过Modbus转Profinet网关与湿度传感器通讯配置

Modbus转Profinet网关(XD-MDPN100)可以实现不同协议设备通讯,有些现场需要实时监测环境参数,但大由于当时环境仪表设备不能达到直连效果,通过Modbus转Profinet网关,湿度传感器的数据可以被准确、可靠地传输…

【通信原理笔记】【三】模拟信号调制——3.3 包络调制(AM)

文章目录 前言一、AM的数学表示二、AM的相干解调三、AM的非相干解调四、AM调制的性能总结 前言 本文将介绍包络调制方法,该方法的思路是将 m ( t ) m(t) m(t)作为已调信号的复包络的模——即包络。 一、AM的数学表示 根据包络调制的思路,我们有如下数学…

注册接口和前置SQL及数据生成及封装

注册接口 演示注册接口的三步操作:【注册流程逻辑】 第一步:发送注册短信验证码接口请求 请求方法: put 请求地址:http://shop.lemonban.com:8107/user/sendRegisterSms 请求参数:{“mobile”:“13422337766”} 请求头…

NASA数据集——2016-2019 年北极地区天气研究和预报(WRF)随机时间倒拉格朗日传输(STILT)粒子轨迹文件

ABoVE: Level-4 WRF-STILT Particle Trajectories for Circumpolar Receptors, 2016-2019 简介 文件修订日期:2021-12-07 数据集版本: 1 摘要 本数据集提供了 2016-2019 年期间天气研究和预报(WRF)随机时间倒拉格朗日传输(ST…

JavaEE初阶-线程3

文章目录 一、线程安全问题-内存可见性二、等待通知2.1 wait()方法2.2 notify()方法 一、线程安全问题-内存可见性 import java.util.Scanner;public class Demo27 {private static int count0;//下面这段代码会出现内存的可见性问题//将从内存中读取count值的操作称为load 判…

LINUX笔记温习

目录 DAY1 DAY2 day3: day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14 day15 20day DAY1 1、多层级文件夹创建要带-p; 2、创建多文件,要先到该目录下才能创建(第一个目录必须存在才能有效建立); D…

简单说清楚什么是SQL Injection?

最近看完了《The Pragmatic Programmer: 20th Anniversary Edition, 2nd Edition: Your Journey to Mastery》,在第7章:While You Are Coding的footnotes中,提到了一幅漫画: 这不仅用简单的方式说清楚了什么是SQL Injection&#…

Veritas NetBackup 10.4 (Unix, Linux, Windows) - 一流的企业备份解决方案

Veritas NetBackup 10.4 (Unix, Linux, Windows) - 一流的企业备份解决方案 The #1 enterprise backup and recovery solution. 请访问原文链接:https://sysin.org/blog/veritas-netbackup-10/,查看最新版。原创作品,转载请保留出处。 作者…

【THM】Active Reconnaissance(主动侦察)-初级渗透测试

介绍 在网络安全模块的第一个房间里,我们主要进行被动侦察。在第二个房间中,我们重点关注主动侦察以及与之相关的基本工具。我们学习使用网络浏览器来收集有关我们目标的更多信息。此外,我们讨论使用简单的工具(例如ping、traceroute、telnet和 )nc来收集有关网络、系统和…

陀螺仪传感器,IMU和加速度计的产品和选型

爱普生陀螺仪传感器是一种角速度传感器,作为一种石英电子式陀螺仪芯片,具有温度特性好、功耗低、成本低、稳定性好等特点。目前EPSON主力单轴陀螺仪传感器型号为XV7001BB、XV7011BB、XV7021BB和XV7181BB。针对扫地机器人传感器模组等领域的需要&#xff…

【详细教程制作】用户列表

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

正则表达式引擎库汇合

1.总览表格 一些正则表达式库的对比 index库名编程语言说明代码示例编译指令1Posix正则C语言是C标准库中用于编译POSIX风格的正则表达式库 posix-re.cgcc posix-re.c 2PCRE库C语言提供类似Perl语言的一个正则表达式引擎库。 一般系统上对应/usr/lib64/libpcre.so这个库文件&am…

012——LED模块驱动开发(基于I.MX6uLL)

目录 一、 硬件原理图 二、 驱动程序 三、 应用程序 四、 Makefile 五、操作 一、 硬件原理图 又是非常经典的点灯环节 ,每次学新语言第一步都是hello world,拿到新板子或者学习新的操作系统,第一步就是点灯。 LED 的驱动方式&#xff0…

bugku-web-聪明的php

传递一个参数&#xff0c;提示flag的文件名随意 这里就是要传递参数filename&#xff0c;其值随意 直接得到内部逻辑代码 <?php include(./libs/Smarty.class.php); echo "pass a parameter and maybe the flag files filename is random :>"; $smarty new S…

蓝队面经速查手册

文章目录 常见安全设备溯源应急响应&#xff0b;入侵排查思路日志文件安全加固常用排查命令主机后门webshell的排查思路Webshell工具的流量特征Linux 的 Selinuxwindows 日志分析工具Linux 日志分析技巧命令安全基线规范检查中间件基线规范&#xff08;APACHE&#xff09;中间件…

验证码项目(java实现)

1、Kaptcha详细配置 配置项 配置说明 默认值 kaptcha.border 图⽚边框&#xff0c;合法值&#xff1a;yes , no yes kaptcha.border.color 边框颜⾊&#xff0c;合法值&#xff1a; r,g,b (and optional alpha) 或者 white,black,blue black kaptcha.image.width 图⽚宽 200…

golang语言系列:Scrum、Kanban等敏捷管理策略

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 golang语言系列 文章&#xff0c;主要对编程通用技能 Scrum、Kanban等敏捷管理策略 进行学习 1.什么是敏捷开发 敏捷是一个描述软件开发方法的术语&#xff0c;它强调增量交付、团队协作、持续规划和持续学习。…