お金をかけずにサーバーの勉強をしよう

Garnetインストール(Redis互換) 2

2024年3月22日

メニューへ戻る

Microsoft製 .NETベースの Redis互換キャッシュサーバーの Garnetを Ubuntu Serverにインストールします。

Garnetインストール(Redis互換) 1」では能書きをたれただけですが、お待たせしました、ここでは環境を作ります。


1.環境

Garnetは .NETで動くクロスプラットフォームのアプリですが、ここではいつものように Ubuntuをサーバーにしてみます。

クライアントの役割は 2つで、C#で書かれた Garnetをビルドして実行できるようにするのと、redis-cliコマンドを使って Garnetにアクセスすることです。

●サーバー

OSUbuntu Server 22.04.4
.NET8.0.3-1 SDK
Garnet1.0.0

Ubuntu Serverのインストールについては
Ubuntu Linux Serverをインストール」と「Ubuntu Serverの初期設定
で扱っています。

.NET8のインストールについては「.NET8 SDKインストール」で扱っています。

サーバーにはランタイムだけが必要で SDKまではいらないと思うのですが、とりあえず SDKを入れちゃいます。

OSも .NET8も 2024年3月22日時点の最新版(バージョンは上に書いてある通り)を使います。

●クライアント

OSLubuntu 22.04.4
.NET8.0.3-1 SDK
redis-tools6.0.16

クライアントの Lubuntuには Garnetにアクセスするクライアントの redis-cliコマンドが入っている [redis-tools]パッケージを予めインストールしておきます。

subro@Lubuntu2204:~$ sudo apt install -y redis-tools
〜〜〜 省略 〜〜〜

特に問題なくインストールできました。
Ubuntu Serverでやったとしてもきっと同じでしょう。

この環境前提で以下を進めていきます。


2.ソースからビルド

公式ドキュメントに以下がありますので、この通りにやっていきます。
Getting Started

これを読むとパッケージで配布してるんではなくて、C#のソースコードからビルドすることになっています。

ビルドはクライアントの Lubuntu 22.04.4の作業になります。

GitHubからソースを取ってこないといけないので、先に gitコマンドをインストールします。

subro@Lubuntu2204:~$ sudo apt install -y git
〜〜〜 省略 〜〜〜

問題なくインストールできました。

後の作業でカレントディレクトリの下に自動的に Garnetプロジェクトの [garnet]ディレクトリができますんで、私はホームディレクトリの下に [work]ディレクトリを作ってそこをカレントディレクトリとしています。

では GitHubからプロジェクトを持ってきましょう。

subro@Lubuntu2204:~/work$ git clone git@github.com:microsoft/garnet.git
Cloning into 'garnet'...
The authenticity of host 'github.com (20.27.177.113)' can't be established.
〜〜〜 省略 〜〜〜

認証関係で弾かれて取れませんね…

そういやリポジトリを書くところの [git@github.com:microsoft/garnet.git] って書き方、何を意味してるのか、私は GitHubに詳しくなく分かりませんでしたので、いつもの方法でやり直しました。

subro@Lubuntu2204:~/work$ git clone https://github.com/microsoft/garnet.git
Cloning into 'garnet'...
remote: Enumerating objects: 10324, done.
remote: Counting objects: 100% (1898/1898), done.
remote: Compressing objects: 100% (906/906), done.
remote: Total 10324 (delta 1048), reused 1295 (delta 962), pack-reused 8426
Receiving objects: 100% (10324/10324), 14.56 MiB | 941.00 KiB/s, done.
Resolving deltas: 100% (7370/7370), done.

ちゃんとプロジェクトディレクトリ [garnet] ができていました。

subro@Lubuntu2204:~/work$ ls -ld garnet
drwxrwxr-x 13 subro subro 4096  3月 22 20:46 garnet


ドキュメントの「Build the Project」という段落に進みます。

プロジェクトディクトリ [garnet] に移動します。

subro@Lubuntu2204:~/work$ cd garnet

subro@Lubuntu2204:~/work/garnet$ ls -l
total 124
-rw-rw-r-- 1 subro subro   444  3月 22 20:46 CODE_OF_CONDUCT.md
-rw-rw-r-- 1 subro subro   175  3月 22 20:46 Directory.Build.props
-rw-rw-r-- 1 subro subro   471  3月 22 20:46 Dockerfile
-rw-rw-r-- 1 subro subro   537  3月 22 20:46 Dockerfile.nanoserver-x64
-rw-rw-r-- 1 subro subro   484  3月 22 20:46 Dockerfile.ubuntu-x64
-rw-rw-r-- 1 subro subro  9757  3月 22 20:46 Garnet.nuspec
-rw-rw-r-- 1 subro subro 20898  3月 22 20:46 Garnet.sln
-rw-rw-r-- 1 subro subro   596  3月 22 20:46 Garnet.snk
-rw-rw-r-- 1 subro subro  1141  3月 22 20:46 LICENSE
-rw-rw-r-- 1 subro subro  2398  3月 22 20:46 NOTICE.md
-rw-rw-r-- 1 subro subro  8549  3月 22 20:46 README.md
-rw-rw-r-- 1 subro subro  2757  3月 22 20:46 SECURITY.md
-rw-rw-r-- 1 subro subro   485  3月 22 20:46 SUPPORT.md
drwxrwxr-x 3 subro subro  4096  3月 22 20:46 benchmark
-rw-rw-r-- 1 subro subro   545  3月 22 20:46 docker-compose.yml
drwxrwxr-x 8 subro subro  4096  3月 22 20:46 libs
drwxrwxr-x 3 subro subro  4096  3月 22 20:46 main
drwxrwxr-x 3 subro subro  4096  3月 22 20:46 metrics
drwxrwxr-x 7 subro subro  4096  3月 22 20:46 playground
drwxrwxr-x 4 subro subro  4096  3月 22 20:46 samples
drwxrwxr-x 6 subro subro  4096  3月 22 20:46 test
drwxrwxr-x 6 subro subro  4096  3月 22 20:46 website

Garnetプロジェクトのビルドに必要な何か(?)を復元します。

subro@Lubuntu2204:~/work/garnet$ dotnet restore
  復元対象のプロジェクトを決定しています...
  /home/subro/work/garnet/libs/host/Garnet.host.csproj を復元しました (17.9 sec)。
  /home/subro/work/garnet/playground/Embedded.perftest/Embedded.perftest.csproj を復元しました (17.9 sec)。
  /home/subro/work/garnet/main/GarnetServer/GarnetServer.csproj を復元しました (17.9 sec)。
  /home/subro/work/garnet/samples/GarnetClientSample/GarnetClientSample.csproj を復元しました (369 ms)。
  /home/subro/work/garnet/samples/MetricsMonitor/MetricsMonitor.csproj を復元しました (371 ms)。
  /home/subro/work/garnet/playground/GarnetClientStress/GarnetClientStress.csproj を復元しました (10 ms)。
  /home/subro/work/garnet/test/Garnet.test.cluster/Garnet.test.cluster.csproj を復元しました (684 ms)。
  /home/subro/work/garnet/playground/Bitmap/Bitmap.csproj を復元しました (2 ms)。
  /home/subro/work/garnet/metrics/HdrHistogram/HdrHistogram.csproj を復元しました (3 ms)。
  /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/Tsavorite.devices.AzureStorageDevice.csproj を復元しました (8 ms)。
  /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/core/Tsavorite.core.csproj を復元しました (7 ms)。
  /home/subro/work/garnet/libs/server/Garnet.server.csproj を復元しました (12 ms)。
  /home/subro/work/garnet/libs/common/Garnet.common.csproj を復元しました (5 ms)。
  /home/subro/work/garnet/libs/cluster/Garnet.cluster.csproj を復元しました (14 ms)。
  /home/subro/work/garnet/libs/client/Garnet.client.csproj を復元しました (6 ms)。
  /home/subro/work/garnet/benchmark/Resp.benchmark/Resp.benchmark.csproj を復元しました (8 ms)。
  /home/subro/work/garnet/playground/ClusterStress/ClusterStress.csproj を復元しました (3.76 sec)。
  /home/subro/work/garnet/playground/TstRunner/TstRunner.csproj を復元しました (4.96 sec)。
  /home/subro/work/garnet/test/Garnet.test/Garnet.test.csproj を復元しました (23.28 sec)。

良さげです。

ビルドします。

subro@Lubuntu2204:~/work/garnet$ dotnet build -c Release
MSBuild のバージョン 17.9.6+a4ecab324 (.NET)
  復元対象のプロジェクトを決定しています...
  復元対象のすべてのプロジェクトは最新です。
  Garnet.common -> /home/subro/work/garnet/libs/common/bin/AnyCPU/Release/net8.0/Garnet.common.dll
  Garnet.common -> /home/subro/work/garnet/libs/common/bin/AnyCPU/Release/net7.0/Garnet.common.dll
  Garnet.common -> /home/subro/work/garnet/libs/common/bin/AnyCPU/Release/net6.0/Garnet.common.dll
  Tsavorite.core -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/core/bin/AnyCPU/Release/net8.0/Tsavorite.core.dll
  HdrHistogram -> /home/subro/work/garnet/metrics/HdrHistogram/bin/AnyCPU/Release/net6.0/HdrHistogram.dll
  Tsavorite.core -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/core/bin/AnyCPU/Release/net7.0/Tsavorite.core.dll
  HdrHistogram -> /home/subro/work/garnet/metrics/HdrHistogram/bin/AnyCPU/Release/net8.0/HdrHistogram.dll
  HdrHistogram -> /home/subro/work/garnet/metrics/HdrHistogram/bin/AnyCPU/Release/net7.0/HdrHistogram.dll
  Garnet.client -> /home/subro/work/garnet/libs/client/bin/AnyCPU/Release/net7.0/Garnet.client.dll
/home/subro/work/garnet/playground/ClusterStress/OnlineReqGen.cs(6,1): error IDE0005: Using ディレクティブは必要ありません。 (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [/home/subro/work/garnet/playground/ClusterStress/ClusterStress.csproj::TargetFramework=net7.0]
  Tsavorite.core -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/core/bin/AnyCPU/Release/net6.0/Tsavorite.core.dll
  Resp.benchmark -> /home/subro/work/garnet/benchmark/Resp.benchmark/bin/Release/net7.0/Resp.benchmark.dll
  Garnet.server -> /home/subro/work/garnet/libs/server/bin/AnyCPU/Release/net7.0/Garnet.server.dll
  Bitmap -> /home/subro/work/garnet/playground/Bitmap/bin/Release/net7.0/Bitmap.dll
  MetricsMonitor -> /home/subro/work/garnet/samples/MetricsMonitor/bin/Release/net7.0/MetricsMonitor.dll
  Garnet.client -> /home/subro/work/garnet/libs/client/bin/AnyCPU/Release/net6.0/Garnet.client.dll
  Resp.benchmark -> /home/subro/work/garnet/benchmark/Resp.benchmark/bin/Release/net6.0/Resp.benchmark.dll
/home/subro/work/garnet/playground/ClusterStress/OnlineReqGen.cs(6,1): error IDE0005: Using ディレクティブは必要ありません。 (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [/home/subro/work/garnet/playground/ClusterStress/ClusterStress.csproj::TargetFramework=net6.0]
  Garnet.server -> /home/subro/work/garnet/libs/server/bin/AnyCPU/Release/net6.0/Garnet.server.dll
  Garnet.client -> /home/subro/work/garnet/libs/client/bin/AnyCPU/Release/net8.0/Garnet.client.dll
  GarnetClientStress -> /home/subro/work/garnet/playground/GarnetClientStress/bin/Release/net8.0/GarnetClientStress.dll
  Resp.benchmark -> /home/subro/work/garnet/benchmark/Resp.benchmark/bin/Release/net8.0/Resp.benchmark.dll
/home/subro/work/garnet/playground/ClusterStress/OnlineReqGen.cs(6,1): error IDE0005: Using ディレクティブは必要ありません。 (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [/home/subro/work/garnet/playground/ClusterStress/ClusterStress.csproj::TargetFramework=net8.0]
  Garnet.server -> /home/subro/work/garnet/libs/server/bin/AnyCPU/Release/net8.0/Garnet.server.dll
  GarnetClientSample -> /home/subro/work/garnet/samples/GarnetClientSample/bin/Release/net8.0/GarnetClientSample.dll
  Garnet.cluster -> /home/subro/work/garnet/libs/cluster/bin/AnyCPU/Release/net8.0/Garnet.cluster.dll
  Tsavorite.devices.AzureStorageDevice -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/bin/AnyCPU/Release/net8.0/Tsavorite.devices.AzureStorageDevice.dll
  Garnet.host -> /home/subro/work/garnet/libs/host/bin/AnyCPU/Release/net8.0/Garnet.host.dll
  Garnet.test -> /home/subro/work/garnet/test/Garnet.test/bin/AnyCPU/Release/net8.0/Garnet.test.dll
  GarnetServer -> /home/subro/work/garnet/main/GarnetServer/bin/AnyCPU/Release/net8.0/GarnetServer.dll
  Embedded.perftest -> /home/subro/work/garnet/playground/Embedded.perftest/bin/Release/net8.0/Embedded.perftest.dll
  Garnet.cluster -> /home/subro/work/garnet/libs/cluster/bin/AnyCPU/Release/net7.0/Garnet.cluster.dll
  Tsavorite.devices.AzureStorageDevice -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/bin/AnyCPU/Release/net7.0/Tsavorite.devices.AzureStorageDevice.dll
  Garnet.host -> /home/subro/work/garnet/libs/host/bin/AnyCPU/Release/net7.0/Garnet.host.dll
  Garnet.test -> /home/subro/work/garnet/test/Garnet.test/bin/AnyCPU/Release/net7.0/Garnet.test.dll
  GarnetServer -> /home/subro/work/garnet/main/GarnetServer/bin/AnyCPU/Release/net7.0/GarnetServer.dll
  Embedded.perftest -> /home/subro/work/garnet/playground/Embedded.perftest/bin/Release/net7.0/Embedded.perftest.dll
  Garnet.cluster -> /home/subro/work/garnet/libs/cluster/bin/AnyCPU/Release/net6.0/Garnet.cluster.dll
  Tsavorite.devices.AzureStorageDevice -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/bin/AnyCPU/Release/net6.0/Tsavorite.devices.AzureStorageDevice.dll
  Garnet.host -> /home/subro/work/garnet/libs/host/bin/AnyCPU/Release/net6.0/Garnet.host.dll
  Garnet.test -> /home/subro/work/garnet/test/Garnet.test/bin/AnyCPU/Release/net6.0/Garnet.test.dll
  GarnetServer -> /home/subro/work/garnet/main/GarnetServer/bin/AnyCPU/Release/net6.0/GarnetServer.dll
  Embedded.perftest -> /home/subro/work/garnet/playground/Embedded.perftest/bin/Release/net6.0/Embedded.perftest.dll
  Garnet.test.cluster -> /home/subro/work/garnet/test/Garnet.test.cluster/bin/AnyCPU/Release/net7.0/Garnet.test.cluster.dll
  TstRunner -> /home/subro/work/garnet/playground/TstRunner/bin/Release/net7.0/TstRunner.dll
  Garnet.test.cluster -> /home/subro/work/garnet/test/Garnet.test.cluster/bin/AnyCPU/Release/net8.0/Garnet.test.cluster.dll
  Garnet.test.cluster -> /home/subro/work/garnet/test/Garnet.test.cluster/bin/AnyCPU/Release/net6.0/Garnet.test.cluster.dll

ビルドに失敗しました。

/home/subro/work/garnet/playground/ClusterStress/OnlineReqGen.cs(6,1): error IDE0005: Using ディレクティブは必要ありません。 (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [/home/subro/work/garnet/playground/ClusterStress/ClusterStress.csproj::TargetFramework=net7.0]
/home/subro/work/garnet/playground/ClusterStress/OnlineReqGen.cs(6,1): error IDE0005: Using ディレクティブは必要ありません。 (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [/home/subro/work/garnet/playground/ClusterStress/ClusterStress.csproj::TargetFramework=net6.0]
/home/subro/work/garnet/playground/ClusterStress/OnlineReqGen.cs(6,1): error IDE0005: Using ディレクティブは必要ありません。 (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0005) [/home/subro/work/garnet/playground/ClusterStress/ClusterStress.csproj::TargetFramework=net8.0]
    0 個の警告
    3 エラー

経過時間 00:01:15.03

ウフッ、何これ。

同プロジェクトの issueに上がってましたね。ヤレヤレ
Docker build failed on release v1.0.0 on Linux VM #79

一度 [~/work/garnet] ディレクトリを削除して、git clone するところからやり直します。

subro@Lubuntu2204:~/work/garnet$ cd ..

subro@Lubuntu2204:~/work$ rm -r garnet
rm: remove write-protected regular file 'garnet/.git/objects/pack/pack-e3a2b5f781a9642a982deb6ba5d8164d68c4e249.idx'? y
rm: remove write-protected regular file 'garnet/.git/objects/pack/pack-e3a2b5f781a9642a982deb6ba5d8164d68c4e249.pack'? y

subro@Lubuntu2204:~/work$ git clone https://github.com/microsoft/garnet.git

で、ここからが違って、[garnet]ディレクトリではなく、その下の下の [garnet/main/GarnetServer] ディレクトリに移動します。

subro@Lubuntu2204:~/work$ cd garnet/main/GarnetServer

subro@Lubuntu2204:~/work/garnet/main/GarnetServer$

再び dotnet restore をします。

subro@Lubuntu2204:~/work/garnet/main/GarnetServer$ dotnet restore
〜〜〜 省略 〜〜〜

これは問題なく完了しました。

再度ビルドに挑戦。

subro@Lubuntu2204:~/work/garnet/main/GarnetServer$ dotnet build -c Release
MSBuild のバージョン 17.9.6+a4ecab324 (.NET)
  復元対象のプロジェクトを決定しています...
  復元対象のすべてのプロジェクトは最新です。
  Garnet.common -> /home/subro/work/garnet/libs/common/bin/AnyCPU/Release/net8.0/Garnet.common.dll
  Tsavorite.core -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/core/bin/AnyCPU/Release/net8.0/Tsavorite.core.dll
  HdrHistogram -> /home/subro/work/garnet/metrics/HdrHistogram/bin/AnyCPU/Release/net6.0/HdrHistogram.dll
  Tsavorite.core -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/core/bin/AnyCPU/Release/net6.0/Tsavorite.core.dll
  Tsavorite.devices.AzureStorageDevice -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/bin/AnyCPU/Release/net8.0/Tsavorite.devices.AzureStorageDevice.dll
  HdrHistogram -> /home/subro/work/garnet/metrics/HdrHistogram/bin/AnyCPU/Release/net7.0/HdrHistogram.dll
  Garnet.common -> /home/subro/work/garnet/libs/common/bin/AnyCPU/Release/net6.0/Garnet.common.dll
  HdrHistogram -> /home/subro/work/garnet/metrics/HdrHistogram/bin/AnyCPU/Release/net8.0/HdrHistogram.dll
  Garnet.common -> /home/subro/work/garnet/libs/common/bin/AnyCPU/Release/net7.0/Garnet.common.dll
  Tsavorite.devices.AzureStorageDevice -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/bin/AnyCPU/Release/net6.0/Tsavorite.devices.AzureStorageDevice.dll
  Tsavorite.core -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/core/bin/AnyCPU/Release/net7.0/Tsavorite.core.dll
  Garnet.client -> /home/subro/work/garnet/libs/client/bin/AnyCPU/Release/net6.0/Garnet.client.dll
  Garnet.client -> /home/subro/work/garnet/libs/client/bin/AnyCPU/Release/net8.0/Garnet.client.dll
  Garnet.server -> /home/subro/work/garnet/libs/server/bin/AnyCPU/Release/net6.0/Garnet.server.dll
  Garnet.client -> /home/subro/work/garnet/libs/client/bin/AnyCPU/Release/net7.0/Garnet.client.dll
  Garnet.cluster -> /home/subro/work/garnet/libs/cluster/bin/AnyCPU/Release/net6.0/Garnet.cluster.dll
  Tsavorite.devices.AzureStorageDevice -> /home/subro/work/garnet/libs/storage/Tsavorite/cs/src/devices/AzureStorageDevice/bin/AnyCPU/Release/net7.0/Tsavorite.devices.AzureStorageDevice.dll
  Garnet.server -> /home/subro/work/garnet/libs/server/bin/AnyCPU/Release/net7.0/Garnet.server.dll
  Garnet.server -> /home/subro/work/garnet/libs/server/bin/AnyCPU/Release/net8.0/Garnet.server.dll
  Garnet.host -> /home/subro/work/garnet/libs/host/bin/AnyCPU/Release/net6.0/Garnet.host.dll
  Garnet.cluster -> /home/subro/work/garnet/libs/cluster/bin/AnyCPU/Release/net7.0/Garnet.cluster.dll
  GarnetServer -> /home/subro/work/garnet/main/GarnetServer/bin/AnyCPU/Release/net6.0/GarnetServer.dll
  Garnet.host -> /home/subro/work/garnet/libs/host/bin/AnyCPU/Release/net7.0/Garnet.host.dll
  Garnet.cluster -> /home/subro/work/garnet/libs/cluster/bin/AnyCPU/Release/net8.0/Garnet.cluster.dll
  GarnetServer -> /home/subro/work/garnet/main/GarnetServer/bin/AnyCPU/Release/net7.0/GarnetServer.dll
  Garnet.host -> /home/subro/work/garnet/libs/host/bin/AnyCPU/Release/net8.0/Garnet.host.dll
  GarnetServer -> /home/subro/work/garnet/main/GarnetServer/bin/AnyCPU/Release/net8.0/GarnetServer.dll

ビルドに成功しました。
    0 個の警告
    0 エラー

経過時間 00:00:04.53

理由は分からないけど、通るんだなこれが。
でもこれで良いのかはわからず…。

次はドキュメントの「Run our Test Suite」段落です。
ビルドでできあがったバイナリに対してテストコードを実行するのでしょう。
こいつはプロジェクトのトップ [~/work/garnet]ディレクトリに戻って実行します。

subro@Lubuntu2204:/work/garnet/main/GarnetServer$ cd ../..

subro@Lubuntu2204:/work/garnet$ dotnet test -c Release -f net8.0 -l "console;verbosity=detailed"
  復元対象のプロジェクトを決定しています...
  復元対象のすべてのプロジェクトは最新です。

〜〜〜 長いので省略 〜〜〜

  成功 SimpleWatchTest [36 ms]
  成功 TxnGetSetTest [79 ms]
  成功 TxnGetTest [59 ms]
  成功 TxnSetTest [74 ms]
NUnit Adapter 4.5.0.0: Test execution complete
  成功 WatchKeyFromDisk [381 ms]
  成功 WatchNonExistentKey [22 ms]

テストの実行に成功しました。
テストの合計数: 622
     成功: 609
    スキップ: 13
合計時間: 5.0621 分

合計時間が出てもいつまでも帰ってこないのでCtrl+Cで強制終了させました。

若干怪しい結果が出ているものもありましたけど、大丈夫かな?

上の「スキップ: 13」については Azureストレージを使う場合のテストらしく、環境変数で同テストをやるように設定しなければスキップされるとドキュメントの「Tip」に書いてありましたので問題は無さげです。

試しにもう一回テストしてみたら、スキップも出ずちゃんと戻っても来ました。
謎です。

これで Garnetができはしたと思います。


==========
どうにかビルド完了まではきましたが、ビルド時のエラーは GitHubに issueが上がってなかったら C#に疎い私ではクリアできないものでした。

Ver 1.0.0とはいえまだユルいのか、Linuxでやるから良くないのか、とにかく荒削りって感じがします。

次回はデプロイをして実際に使用してみる回になりますが、果たして上手く行くんでしょうか。

Garnetインストール(Redis互換) 3」に続きます。


次回困ることになる予定なのが、.NETで作ったプログラムの本番環境へのデプロイ方法なんですね。
しかし日本語書籍でそこら辺を体系的に綴った書籍はなさげで、.NET8の本もなく、更に言うと ASP.NETの本しかないのです。
何となくこの本なら仙道のようになんとかしてくれると思うのは気のせいでしょうか。
でも 2021年刊かぁ…。