文华苑 發表於 2025-11-24 00:00:00

微软开源的Garnet(替代Redis)如何安装使用,与Redis区别对比

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>前言</li><li>安装方式</li><li>下载地址</li><li>编译安装</li><li>Redis-benchmark</li><li>兼容性</li><li>总结</li></ul></div><p>作为微软的新开源项目,Garnet无疑为开发者社区带来了新的可能性。它的出现并非要取代Redis,而是提供了一个与Redis兼容的、具有一些独特优势的选择。对于开发者来说,Garnet的出现无疑为他们提供了更多的选择,而这对于开源社区的发展来说,无疑是一件好事。如果你正在寻找一个Redis的替代方案,那么Garnet可能是一个不错的选择。</p>
<p class="maodian"></p><h2>前言</h2>
<p>Redis不再开源,后续使用3月20日以后的版本需要遵守新的协议。协议详情可以参考:</p>
<p>https://github.com/redis/redis?tab=License-1-ov-file#readme</p>
<p>以下是协议内容部分截图:</p>
<p><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20251124/1-251124164PV93.png" /></p>
<p>微软在redis即将闭源的情况下,开源了它的一款替代性项目产品,叫garnet,兼容redis的所有操作方式和通讯协议。并且采用MIT开源协议。项目地址:</p>
<p>https://github.com/microsoft/garnet</p>
<p class="maodian"></p><h2>安装方式</h2>
<div class="dxycode"><pre class="brush:plain;">官网上面其实没有写如何安装garnet的
很多人见识用nuget的方式进行安装

我这边简单尝试了下也没看出来怎么用exe
没办法 只能学习 dockerfile 里面的内容在windows上面进行编译.</pre></div>
<p class="maodian"></p><h2>下载地址</h2>
<div class="dxycode"><pre class="brush:plain;">https://codeload.github.com/microsoft/garnet/tar.gz/refs/tags/v1.0.0

需要注意里面的内容由多个 DOCKFILE 是很好的指导文件

需要再次说明的事,garnet 是基于.net开发的程序
编译必须有dotnet sdk 运行应该至少有 dotnet 的 runtime
为了简单期间, 这边都使用 dotnet sdk的方式
下载地址为:
https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0</pre></div>
<p class="maodian"></p><h2>编译安装</h2>
<div class="dxycode"><pre class="brush:plain;">必须先安装 dotnet sdk
然后查看 tar.gz 包里面的dockfile进行学习
Linux上面的为:
WORKDIR /source/main/GarnetServer
RUN dotnet publish -c Release -o /app --self-contained false -f net8.0
Windows上面的为:
WORKDIR /source/main/GarnetServer
RUN dotnet publish -c Release -o /app -r win-x64 --self-contained false -f net8.0

下载好tar包之后, 进入目录比如我这边:
C:\Users\Administrator\Downloads\garnet-1.0.0\main\GarnetServer

直接执行命令:
RUN dotnet publish -c Release -o /app -r win-x64 --self-contained false -f net8.0

会在:C:\app 产生安装文件, 二进制的文件为:GarnetServer.exe

注意配置文件的模板为:
C:\Users\Administrator\Downloads\garnet-1.0.0\libs\host\defaults.conf

比较重要的需要改的参数有:
"Port" : 3278,
"AuthenticationMode" : "Password",
"Password" : "Yourpassword",

注意复制过来之后,直接修改就可以了
执行命令为: 在 C:\app 执行
GarnetServer.exe --config-import-path garnet.conf

注意我本地的配置文件就是: C:\app\garnet.conf

可以使用 redis-cli 进行链接
也可以使用 redis-benchmark 进行简单测试.

需要说明我下面的对比是 redisWin7.0.5 的版本和 Garnet1.0.0的版本</pre></div>
<p class="maodian"></p><h2>Redis-benchmark</h2>
<table><tbody><tr><td><p><strong>测试项目</strong></p></td><td><p><strong>garnet on windows</strong></p></td><td><p><strong>时延</strong></p></td><td><p><strong>redis on Windows</strong></p></td><td><p><strong>时延</strong></p></td></tr><tr><td><p>PING_INLINE</p></td><td><p>41876</p></td><td><p>0.612</p></td><td><p>56465</p></td><td><p>0.638</p></td></tr><tr><td><p>PING_MBULK</p></td><td><p>42034</p></td><td><p>0.610</p></td><td><p>58685</p></td><td><p>0.475</p></td></tr><tr><td><p>SET</p></td><td><p>40128</p></td><td><p>0.643</p></td><td><p>55005</p></td><td><p>0.735</p></td></tr><tr><td><p>GET</p></td><td><p>41050</p></td><td><p>0.626</p></td><td><p>55617</p></td><td><p>0.528</p></td></tr><tr><td><p>INCR</p></td><td><p>42936</p></td><td><p>0.603</p></td><td><p>55865</p></td><td><p>0.593</p></td></tr><tr><td><p>LPUSH</p></td><td><p>43159</p></td><td><p>0.600</p></td><td><p>54141</p></td><td><p>0.651</p></td></tr><tr><td><p>SADD</p></td><td><p>40306</p></td><td><p>0.637</p></td><td><p>53163</p></td><td><p>0.801</p></td></tr><tr><td><p>HSET</p></td><td><p>42354</p></td><td><p>0.608</p></td><td><p>57770</p></td><td><p>0.704</p></td></tr></tbody></table>
<p>garnet的时延好像的确表优秀一点但是跟redis比 他的吞吐量感觉还是稍微差一些.&nbsp;</p>
<p>可能是我选择的benchmark工具有问题, 但是也说明了一些问题.&nbsp;</p>
<p>garnet 还是需要优化的. 不知道产品兼容性如何.</p>
<p class="maodian"></p><h2>兼容性</h2>
<p>需要注意的是,Garnet虽然兼容Redis的RESP协议,但并不是完全兼容Redis的所有功能。在使用Garnet时,开发者需要注意一些细节,例如Garnet不支持Redis的一些命令、数据结构和特性,这可能会对一些应用场景造成影响。因此,在使用Garnet时,开发者需要根据自己的实际需求进行选择。具体的兼容性问题,可以参考Garnet的官方文档关于兼容性的描述。</p>
<p class="maodian"></p><h2>总结</h2>
<p>以上就是微软的Garnet的安装学习以及与Redis的简单对比的详细内容,更多相关资料请阅读琼殿技术社区其它文章!</p>
頁: [1]
查看完整版本: 微软开源的Garnet(替代Redis)如何安装使用,与Redis区别对比