跳到主要内容

构建和测试

从源代码克隆

克隆 Garnet 仓库。Garnet 位于该仓库的 main 分支。

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

构建项目

请按照此处的说明,确保已安装 .NET 8。您可以使用 Linux 或 Windows;Garnet 在这两个平台上的工作情况都一样好。

进入仓库的根文件夹并使用 dotnet 构建,或者打开 Garnet.sln 并使用 Visual Studio 2022 构建(我们推荐使用预览版以获取最新功能)。请通过检查更新确保 Visual Studio 是最新的。

cd garnet
dotnet restore
dotnet build -c Release

运行我们的测试套件

作为一项健全性检查,您可以运行我们的测试套件。下面显示了在 Release 模式下运行 .NET 8 测试并向控制台输出详细信息的命令(请确保您位于仓库的根文件夹中)。

dotnet test -c Release -f net8.0 -l "console;verbosity=detailed"
提示

除非您将环境变量 RunAzureTests 设置为 yes 并且 Azurite 正在运行,否则使用 Azure 云存储的测试将被跳过。

部署 Garnet 服务器

现在,您可以部署 Garnet 服务器了。这很简单,运行以下命令:

cd main/GarnetServer
dotnet run -c Release -f net8.0
提示

默认情况下,Garnet 侦听 TCP 端口 6379,当您需要从远程机器访问服务器时,请务必调整您的防火墙设置。另外请注意,Garnet 默认侦听 IPAddress.Any 和 IPAddress.IPv6Any 终结点。请务必根据您的要求进行调整。

要查看可配置选项及其默认值,请运行以下命令。您可以配置索引大小、内存大小、页面大小、数据文件路径和检查点路径、要绑定的 IP 地址、要运行的端口号等。

dotnet run -c Release -f net8.0 -- --help
提示

要以 512MB 的索引大小(而不是默认值)运行服务器,请运行此命令:

dotnet run -c Release -f net8.0 -- -i 512m

使用 RESP 客户端连接

Garnet 使用 RESP 协议,因此您可以使用您喜欢的客户端语言中的任何 Redis 客户端与 Garnet 服务器通信。对于 C# 应用程序,您可以使用 StackExchange.Redis 或我们自己的 C# 客户端,名为 GarnetClient。

在 Windows 上,您可以使用具有图形界面和命令行界面的RedisInsight,或者安装Memurai(它在 Windows 上提供 Redis)并使用其 memurai-cli 命令行工具。您也可以在 WSL 上使用 redis-cli,配置如下。

  • 在 Windows 中启动 GarnetServer,侦听 0.0.0.0 (IPAddress.Any)。如有必要,请使用参数 --bind 0.0.0.0
  • GarnetServer.exe 添加到防火墙例外(Windows Defender 防火墙 -> 允许应用通过 Windows 防火墙)
  • 在 WSL 上,使用 ip route show | grep -i default | awk '{ print $3}' 获取主机 IP 地址
  • 使用 redis-cli -h <address> 从 WSL 连接

如果上述方法无法从 WSL 连接,您可以尝试 Windows 11 22H2 或更高版本中提供的镜像网络模式

使用任何这些客户端时,只需确保在连接到 Garnet 服务器时使用正确的端口(例如 6379)。