Redis开源协议变更!Garnet:微软开源代替方案?

这篇具有很好参考价值的文章主要介绍了Redis开源协议变更!Garnet:微软开源代替方案?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Garnet:微软开源的高性能替代方案,秉承兼容 RESP 协议的同时,以卓越性能和无缝迁移能力重新定义分布式缓存存储! - 精选真开源,释放新价值。

garnet:.exe 下载,精品开源应用分享,redis,开源协议,microsoft,.net,开源软件

概览

最近,Redis修改了开源协议,从BSD变成了 SSPLv1和 RSALv2 的双重许可,而RSALv2 和 SSPLv1,都并未被 OSI 正式认可。OSI 认为,这两种协议包含了一些限制性条款,这些条款与开源定义(OSD)不完全兼容。因此可以认为 Redis 在修改许可证后,已经不再是开源软件(OSS)。Redis 的官网已经修改为“Redis is source-available software”。现在,云服务商已经不能再免费使用redis的源代码了,这可能会影响到云redis的定价,当前阿里云和腾讯云都是有云redis服务的。

微软研究院近期宣布推出一款名为Garnet的创新开源分布式缓存存储系统,致力于解决现代应用程序在处理大规模数据时对于高吞吐量、低延迟及卓越可扩展性的严苛要求。它是一个远程缓存存储,提供了一系列独特的优势。这款基于C# .NET 8.0构建的新型系统,充分利用了现代硬件能力,为应用程序开发人员提供了加速数据访问与处理的强大工具。

Garnet采用了Redis的RESP协议作为起点,这使得开发者可以使用大多数编程语言中现成的Redis客户端,例如 .NET 中的StackExchange.Redis,来使用Garnet。

相比于其他开源缓存存储,Garnet在性能、延迟、可扩展性和持久性方面有显著的提升。Garnet 通过许多客户端连接和小批量提供更好的吞吐量和可扩展性,从而节省大型应用程序和服务的成本。

Garnet 使用启用了加速 TCP 的商品云 (Azure) VM 展示了极低的客户端延迟(在 99.9% 时通常低于 300 微秒),这对于现实场景至关重要。

截至发稿概况如下:

  • 软件地址:GitHub - microsoft/garnet: Garnet is a remote cache-store from Microsoft Research that offers strong performance (throughput and latency), scalability, storage, recovery, cluster sharding, key migration, and replication features. Garnet can work with existing Redis clients.

  • 软件协议:MIT

  • 编程语言:

语言

占比

C#

97.9%

C++

1.5%

PowerShell

0.5%

JavaScript

0.1%

  • 收藏数量:7.3K


特性

Garnet的核心设计理念在于实现极致性能和弹性扩展。以下是Garnet系统的主要技术特性:

  • 高性能与低延迟

Garnet通过高度优化的内存管理机制和高效的并发处理架构,在单个节点内部署多线程处理,显著提升了数据的读写速度。支持在主内存中进行高速缓存,确保了极低的访问延迟,尤其适用于需要快速响应的应用场景。

  • 分布式与可扩展性

Garnet采用了分片集群架构,使得系统能够轻松横向扩展,每个节点都能独立处理一部分数据,从而支持海量数据的存储和检索。内置的自动分片与负载均衡机制,让系统可以根据业务需求动态调整资源分配,确保整体性能保持稳定。

  • 容错与持久化

提供了数据复制功能,以保证在单点故障发生时,数据能够迅速切换至备份节点,确保服务连续性。集成了检查点机制和故障转移功能,允许系统定期保存关键状态并在必要时恢复服务。支持将数据持久化存储在诸如SSD或Azure等分层存储介质上,既保证了数据的安全性又维持了较高的I/O效率。

  • 事务支持与API丰富

Garnet实现了事务处理能力,保证了在分布式环境下的数据一致性,这对于涉及多个操作的复杂业务逻辑至关重要。提供了丰富的API接口,使开发者可以便捷地集成Garnet到现有应用和服务中,同时也便于定制高级功能和扩展系统。

性能

  • 吞吐量 GET

在图1所示的实验中,工程人员使用了大批量的GET操作(每批4096个请求)和小负载(8字节的键和值)来最小化网络开销。随着客户端会话数的增加,工程人员观察到Garnet的可扩展性比Redis或KeyDB更好。Dragonfly展示了类似的扩展性,尽管只能达到16个线程。还要注意,DragonFly是一个纯内存系统。总的来说,即使数据库大小(即预加载的不同键的数量)更大(达到2.56亿个键)超过了处理器缓存的大小,Garnet的吞吐量相对于其他系统始终更高。

garnet:.exe 下载,精品开源应用分享,redis,开源协议,microsoft,.net,开源软件
图1:在数据库大小为(a) 1024个键,和(b) 2.56亿个键的情况下,随着客户端会话数的变化,吞吐量(对数尺度)。

garnet:.exe 下载,精品开源应用分享,redis,开源协议,microsoft,.net,开源软件

  • 延迟 GET/SET

接下来,工程人员通过发出80%的GET和20%的SET请求的混合体,来测量各种系统的客户端延迟,并将其与Garnet进行比较。因为工程人员关心的是延迟,所以工程人员保持数据库大小较小,同时变化工作负载的其他参数,如客户端线程数、批量大小和负载大小。

图3展示了随着客户端会话数的增加,Garnet的延迟(以微秒计)在各个百分位数上都一直较低且更稳定,与其他系统相比。请注意,这个实验不使用批处理。

garnet:.exe 下载,精品开源应用分享,redis,开源协议,microsoft,.net,开源软件

Garnet的延迟经过了精细调整,以适应客户端的批处理和高效处理查询系统的多个会话。在工程人员的下一组实验中,工程人员将批量大小从1增加到64,并在下面的图中以128个活跃客户端连接绘制不同百分位数的延迟。如图4所示,当批量大小增加时,Garnet保持稳定性并实现了比其他系统更低的整体延迟。

garnet:.exe 下载,精品开源应用分享,redis,开源协议,microsoft,.net,开源软件

  • 更多性能测试

参考网站:Evaluating Garnet's Performance Benefits | Garnet

部署

参考网站:Welcome to Garnet | Garnet

克隆项目

git clone https://github.com/microsoft/garnet

安装dotnet 8的SDK后,使用以下命令进行编译

dotnet build -c release

进入garnet文件夹下的main文件夹,点击GarnetServer文件夹,一直进入发布版本(net8.0),然后找到GarnetServer.exe双击运行即可。

garnet:.exe 下载,精品开源应用分享,redis,开源协议,microsoft,.net,开源软件

终端出现以上界面即代表启动成功。你可以使用redis的连接客户端连接上Garnet。


遐想

Garnet作为微软开源的一款高性能分布式缓存存储系统,凭借其卓越的性能、可扩展性以及全面的功能特性,为数据密集型应用场景带来了新的解决方案。Garnet并非是要取代Redis,而是提供了一个与Redis兼容的、具有一些独特优势的选择。任何技术产品都有其适用范围和限制,用户在选择采用时需结合自身项目的具体需求和环境来权衡其优缺点。并且Redis毕竟是经历过十数年工业验证,无数双眼睛盯着这个开源项目,不可能一上来就被某神秘力量以数量级的性能优势超越,到底怎么样,需要交给时间、交给市场检验!

热烈欢迎各位在评论区分享交流心得与见解!!!


声明:本文为辣码甄源原创,转载请标注"辣码甄源原创首发"并附带原文链接。文章来源地址https://www.toymoban.com/news/detail-850558.html

到了这里,关于Redis开源协议变更!Garnet:微软开源代替方案?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微软文字转语音不能用了?试试这些免费的完美代替品吧!

    最近有很多小伙伴说微软的免费文字转语音功能不能用了,我进官网看也确实没有可以直接用的这个功能了。 ​ 不过大家不用着急,盘哥今天就来分享几个可以代替它的免费软件和网站,如果对你有所帮助。 先介绍两个软件。 01 - 微软语音合成助手( windows) 这是很久前吾

    2024年02月04日
    浏览(50)
  • Redis 不再“开源”,对中国的影响及应对方案

            3 月 20 号,Redis 的 CEO Rowan Trollope 在官网上宣布了 《Redis 采用双源许可证》 的消息。他表示, 今后  Redis  的所有新版本都将使用开源代码可用的许可证,不再使用 BSD 协议,而是采用 OSI 不认可的双重许可 RSALv2 和 SSPLv1 。 Redis  为 防止云厂商“占便宜”所采取

    2024年03月27日
    浏览(87)
  • Redis可以代替MySQL作为数据库吗

    当使用Redis作为数据库时,以下是一些基本的代码示例 展示了如何使用Redis进行数据存储、读取和更新: 1.连接到Redis服务器: 2.存储和获取数据: 3.列表操作: 4.有序集合操作: 6.键过期和删除: Redis作为数据库时,下面是一些更复杂的代码示例,展示了如何使用Redis进行高

    2024年02月16日
    浏览(35)
  • Redis键值变更通知机制的配置及使用

    因为开启键通知功能需要消耗一些CPU,所以默认情况下该功能是关闭的,可以通过修改redis.conf文件,或者使用config set 命令来临时开启或关闭键空间通知功能,但使用命令的方式如果Redis重启了将会被还原。 设置的字符含义如下: 字符 发送的通知 K 键空间通知,所有通知以 keysp

    2024年02月13日
    浏览(31)
  • FragmentPagerAdapter被弃用后的代替方案

    网上搜了很多,都没有找到有关Java的完整解决方案。到处问也没有结果。自己瞎折腾,居然出结果啦!——不是科班出生小白太难了! 首先说,我要想的效果:底部一个导航栏,点击导航栏,可以实现翻页效果。也可以通过左滑、右滑实现翻页效果。 第一步:在gradle里添加

    2024年02月07日
    浏览(44)
  • 缓存的变更(JVM本地缓存->Redis分布式缓存)

    在一次需求修改中,下游的服务附加提出了,针对某个业务数据缓存的生效时间的要求 原JVM设计方案: 采用jvm本地缓存机制,定时任务30秒刷新一次 现在redis方案: 因为很多地方使用了这个业务数据缓存,使用方面不能改动过多 因为是分布式部署,如果只使用jvm缓存,无法

    2024年02月11日
    浏览(46)
  • Linux 环境中redis查询数据的多种方法,linux 一行命令代替连接 + 查询,不得不看,运维必学

    1、第一种方法:我们可以先登录Linux服务器上,使用redis-cli 命令连接到redis 数据库,使用查询命令 查询我们想要的数据。 2、使用redis --help 查询redis中的参数,使用命令行中所带的 -e 参可以查询我们想要的数据。 2. 1、使用数据库连接命令 + -e + 数据库查询命令。 3、第三种

    2024年02月12日
    浏览(56)
  • 开源免费虚拟化KVM的部署及其虚拟机资源变更、快照、克隆等常见运维操作

    实践说明:基于RHEL9(AlmaLinux9.1)部署,同类系统(CentOS9,RockyLinux9等)适用,但适用场景是不限于此的。 文档说明:本文档旨在帮助快速应用KVM虚拟化技术,重在实践操作,提供了简要参考。 文档形成时期:2021-2023年 因系统或软件版本不同,构建部署可能略有差异,但本文未做细

    2024年02月02日
    浏览(53)
  • 开源代码安全 | 微软是如何应对开源代码安全问题的?

    微软公司在全球都享有盛名,拥有庞大的员工数量,其中包括了约8.5万名软件开发人员。同时,这也带来了相当多的开源代码的引入。为了保证这些开源软件包的安全,他们需要一款报警准确、易于使用,并能为修复提供可行性建议的工具。阅读本篇文章,您能了解到微软选

    2024年02月07日
    浏览(29)
  • 微软放弃“封禁”商业开源!

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 不知是终于想通了,还是迫于无奈,微软放弃了封禁商业开源,更改了之前宣布的应用商店政策。 此前在 6 月中旬,微软将应用商店的 10.8.7 节内容进行了更改,如下所示,并宣布将于 7 月 16 日(上周六)即时生效: Not attempt to profit fr

    2024年02月05日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包