微软开源Garnet高性能缓存服务的安装与使用

01
Garnet介绍


首先,还是有必要将Garnet的介绍作为开场白,自Redis宣布闭源后,微软研究院就推出了一款开源缓存产品Garnet。Garnet 是由微软研究院(Microsoft Research)推出的新型远程缓存存储系统,它旨在提供高速、可扩展性和低延迟的性能。Garnet 设计了线程自动伸缩的能力,并支持分片集群执行,具备复制、检查点、故障转移和事务功能。它可以在主存储器以及分层存储(如SSD和Azure存储)上运行,支持丰富的API接口并且具有很强的扩展性。Garnet使用Redis的RESP作为其主要的传输协议,因此可以在大多数编程语言中使用未修改的Redis客户端与Garnet一起使用。


这就意味着,如果之前开发的内容使用的是Redis,那么完全可以不用修改任何代码,就可以转到Garnet上。下面,就以几个案例,看下Garnet如何使用。




02
Garnet安装


安装Garnet很方便,官网下载相应的Releases版本即可,或者也可以下载源码自行编译。

下载完成后,解压缩,会有下面几个文件

图片

打开命令行窗口,定位到目录下,运行GarnetServer.exe,看到下面的内容,表示运行成功了。

图片

garnet支持garnet.confredis.conf两种配置文件格式,具体请查看官方文档。这里只使用默认配置。





03
使用方式


可以看到。默认情况下。端口是6379,与redis默认端口相同,那么就使用几个案例实际演示Garnet的使用。




1
 

客户端


从网上找个Redis客户端软件Tiny RDM,也是一款开源的Redis客户端。


图片

点击添加新链接,连接名写上garnet。其他都不填写。使用默认值,点击确认。

图片

点击打开连接,可以连上了哦

图片

图片

添加一个新的键值。


图片

也没有任何问题。




2
 

项目中使用


那么在实际项目中如何使用呢?也很简单,不需要修改任何代码就可以使用。我找了一个现成的开源项目Admin.SimpleAdmin尝试一下在这个项目中,可不可以正常使用Garnet。

打开SimpleAdmin.Cache项目下的配置文件Cache.Develoment.json

图片

修改下默认配置。为:

{  //缓存设置
  "CacheSettings": {
      "UseRedis": true, //启用redis
      "RedisSettings": {
            "Address": "127.0.0.1:6379", //地址
            "Password": "", //Redis服务密码      
            "Db": 0, //默认库      
            "ClearRedis": true //是否每次启动都清除Redis缓存    
       }  
 }}

将SimpleAdmin.Web.Entry设置为启动项,然后启动项目。项目启动成功:

图片

配置并运行前端,运行成功后,在Tiny RDM中,就可以看到缓存数据了。这意味着并不需要修改项目中任何的Redis代码。即可使用Garnet。

图片




3
 

自己编写代码


毕竟吧,上面都是现成的代码。可能与自己的项目并不符合。那么就使用传统方式,自己写代码实践一下。

新建一个控制台程序。

图片

图片

图片

添加依赖包,搜下Redis。看看哪个包用的比较多。

图片

选择StackExchange.Redis。点击安装。发现已然忘记StackExchange.Redis如何使用了,问了下Kimi后,写如下代码:


//Console.WriteLine("Hello, World!");

using StackExchange.Redis;

var connectionString = "127.0.0.1";
var port = 6379;
var garnet = ConnectionMultiplexer.Connect($"{connectionString}:{port}");

var db = garnet.GetDatabase();

db.StringSet("mykey", "garnet");

var value = db.StringGet("mykey");
Console.WriteLine($"Value of 'mykey': {value}");

点击运行。控制台输出没任何问题。

图片

查看Tiny RDM。也是正确的。

图片

好啦,Garnet测试就到这里了。

Garnet目前以MIT许可证开源,允许商业使用、修改和分发,通常不需要公开修改后的代码,你也可以将GarNET这样的开源项目改造成符合特定商业需求的产品哦。