Garnet hosting integration
The Garnet hosting integration models a Garnet resource as the GarnetResource type. To access this type and APIs, add the 📦 Aspire.Hosting.Garnet NuGet package in your AppHost project:
dotnet add package Aspire.Hosting.GarnetAdd Garnet resource
In your AppHost project, call AddGarnet on the builder instance to add a Garnet resource:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddGarnet("cache");
var myService = builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
When Aspire adds a container image to the AppHost, it creates a new Garnet instance on your local machine.
Tip
If you'd rather connect to an existing Garnet instance, call
AddConnectionString instead. For more information on how to use
WithReference, see Resource dependencies.
Add Garnet resource with data volume
To add a data volume to the Garnet resource, call the WithDataVolume method:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddGarnet("cache")
.WithDataVolume(isReadOnly: false);
var myService = builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
The data volume is used to persist the Garnet data outside the lifecycle of its container. The data volume is mounted at the /data path in the Garnet container.
Add Garnet resource with data bind mount
To add a data bind mount to the Garnet resource, call the WithDataBindMount method:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddGarnet("cache")
.WithDataBindMount(
source: @"C:\Garnet\Data",
isReadOnly: false);
var myService = builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
Note
Data bind mounts have limited functionality compared to volumes, and when you use a bind mount, a file or directory on the host machine is mounted into a container.
Add Garnet resource with persistence
To add persistence to the Garnet resource, call the WithPersistence method with either the data volume or data bind mount:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddGarnet("cache")
.WithDataVolume()
.WithPersistence(
interval: TimeSpan.FromMinutes(5),
keysChangedThreshold: 100);
var myService = builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
The preceding code adds persistence to the Garnet resource by taking snapshots of the data at a specified interval and threshold.
Hosting integration health checks
The Garnet hosting integration automatically adds a health check for the Garnet resource. The health check verifies that the Garnet instance is running and that a connection can be established to it.