目录- 前言
- 安装方式
- 下载地址
- 编译安装
- Redis-benchmark
- 兼容性
- 总结
作为微软的新开源项目,Garnet无疑为开发者社区带来了新的可能性。它的出现并非要取代Redis,而是提供了一个与Redis兼容的、具有一些独特优势的选择。对于开发者来说,Garnet的出现无疑为他们提供了更多的选择,而这对于开源社区的发展来说,无疑是一件好事。如果你正在寻找一个Redis的替代方案,那么Garnet可能是一个不错的选择。
前言
Redis不再开源,后续使用3月20日以后的版本需要遵守新的协议。协议详情可以参考:
https://github.com/redis/redis?tab=License-1-ov-file#readme
以下是协议内容部分截图:
微软在redis即将闭源的情况下,开源了它的一款替代性项目产品,叫garnet,兼容redis的所有操作方式和通讯协议。并且采用MIT开源协议。项目地址:
https://github.com/microsoft/garnet
安装方式
官网上面其实没有写如何安装garnet的
很多人见识用nuget的方式进行安装
我这边简单尝试了下也没看出来怎么用exe
没办法 只能学习 dockerfile 里面的内容在windows上面进行编译.
下载地址
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
编译安装
必须先安装 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的版本
Redis-benchmark
测试项目 | garnet on windows | 时延 | redis on Windows | 时延 | PING_INLINE | 41876 | 0.612 | 56465 | 0.638 | PING_MBULK | 42034 | 0.610 | 58685 | 0.475 | SET | 40128 | 0.643 | 55005 | 0.735 | GET | 41050 | 0.626 | 55617 | 0.528 | INCR | 42936 | 0.603 | 55865 | 0.593 | LPUSH | 43159 | 0.600 | 54141 | 0.651 | SADD | 40306 | 0.637 | 53163 | 0.801 | HSET | 42354 | 0.608 | 57770 | 0.704 |
garnet的时延好像的确表优秀一点但是跟redis比 他的吞吐量感觉还是稍微差一些.
可能是我选择的benchmark工具有问题, 但是也说明了一些问题.
garnet 还是需要优化的. 不知道产品兼容性如何.
兼容性
需要注意的是,Garnet虽然兼容Redis的RESP协议,但并不是完全兼容Redis的所有功能。在使用Garnet时,开发者需要注意一些细节,例如Garnet不支持Redis的一些命令、数据结构和特性,这可能会对一些应用场景造成影响。因此,在使用Garnet时,开发者需要根据自己的实际需求进行选择。具体的兼容性问题,可以参考Garnet的官方文档关于兼容性的描述。
总结
以上就是微软的Garnet的安装学习以及与Redis的简单对比的详细内容,更多相关资料请阅读琼殿技术社区其它文章! |