Watch Aspire live streamsDocsTry Aspire
Watch Aspire live streamsDocsTry

GarnetBuilderExtensions Methods

ClassMethods6 members
Provides extension methods for adding Garnet resources to the application model.
AddGarnet(IDistributedApplicationBuilder, string, int?)Section titled AddGarnet(IDistributedApplicationBuilder, string, int?)extensionIResourceBuilder<GarnetResource>
Adds a Garnet container to the application model.
public static class GarnetBuilderExtensions
{
public static IResourceBuilder<GarnetResource> AddGarnet(
this IDistributedApplicationBuilder builder,
string name,
int? port)
{
// ...
}
}
builderIDistributedApplicationBuilderThe Hosting.IDistributedApplicationBuilder.
namestringThe name of the resource. This name will be used as the connection string name when referenced in a dependency.
portint?The host port to bind the underlying container to.
IResourceBuilder<GarnetResource>A reference to the ApplicationModel.IResourceBuilder`1.
This version of the package defaults to the tag of the / container image. Use in application host
var builder = DistributedApplication.CreateBuilder(args);
var garnet = builder.AddGarnet("garnet");
var api = builder.AddProject<Projects.Api>("api)
.WithReference(garnet);
builder.Build().Run();
Use in Api with Aspire.StackExchange.Redis
var builder = WebApplication.CreateBuilder(args);
builder.AddRedisClient("garnet");
var multiplexer = builder.Services.BuildServiceProvider()
.GetRequiredService<IConnectionMultiplexer>();
var db = multiplexer.GetDatabase();
db.HashSet("key", [new HashEntry("hash", "value")]);
var value = db.HashGet("key", "hash");
AddGarnet(IDistributedApplicationBuilder, string, int?, IResourceBuilder<ParameterResource>)Section titled AddGarnet(IDistributedApplicationBuilder, string, int?, IResourceBuilder<ParameterResource>)extensionIResourceBuilder<GarnetResource>
Adds a Garnet container to the application model.
public static class GarnetBuilderExtensions
{
public static IResourceBuilder<GarnetResource> AddGarnet(
this IDistributedApplicationBuilder builder,
string name,
int? port = null,
IResourceBuilder<ParameterResource>? password = null)
{
// ...
}
}
builderIDistributedApplicationBuilderThe Hosting.IDistributedApplicationBuilder.
namestringThe name of the resource. This name will be used as the connection string name when referenced in a dependency.
portint?optionalThe host port to bind the underlying container to.
passwordIResourceBuilder<ParameterResource>optionalThe parameter used to provide the password for the Redis resource. If null a random password will be generated.
IResourceBuilder<GarnetResource>A reference to the ApplicationModel.IResourceBuilder`1.
This version of the package defaults to the tag of the / container image. Use in application host
var builder = DistributedApplication.CreateBuilder(args);
var garnet = builder.AddGarnet("garnet");
var api = builder.AddProject<Projects.Api>("api)
.WithReference(garnet);
builder.Build().Run();
Use in Api with Aspire.StackExchange.Redis
var builder = WebApplication.CreateBuilder(args);
builder.AddRedisClient("garnet");
var multiplexer = builder.Services.BuildServiceProvider()
.GetRequiredService<IConnectionMultiplexer>();
var db = multiplexer.GetDatabase();
db.HashSet("key", [new HashEntry("hash", "value")]);
var value = db.HashGet("key", "hash");
WithDataBindMount(IResourceBuilder<GarnetResource>, string, bool)Section titled WithDataBindMount(IResourceBuilder<GarnetResource>, string, bool)extensionIResourceBuilder<GarnetResource>
Adds a bind mount for the data folder to a Garnet container resource and enables Garnet persistence.
public static class GarnetBuilderExtensions
{
public static IResourceBuilder<GarnetResource> WithDataBindMount(
this IResourceBuilder<GarnetResource> builder,
string source,
bool isReadOnly = false)
{
// ...
}
}
builderIResourceBuilder<GarnetResource>The resource builder.
sourcestringThe source directory on the host to mount into the container.
isReadOnlybooloptional A flag that indicates if this is a read-only mount. Setting this to true will disable Garnet persistence. Defaults to false.
IResourceBuilder<GarnetResource>The ApplicationModel.IResourceBuilder`1.
Use GarnetBuilderExtensions.WithPersistence to adjust Garnet persistence configuration, e.g.:
var garnet = builder.AddGarnet("garnet")
.WithDataBindMount("mydata")
.WithPersistence(TimeSpan.FromSeconds(10));
WithDataVolume(IResourceBuilder<GarnetResource>, string?, bool)Section titled WithDataVolume(IResourceBuilder<GarnetResource>, string?, bool)extensionIResourceBuilder<GarnetResource>
Adds a named volume for the data folder to a Garnet container resource and enables Garnet persistence.
public static class GarnetBuilderExtensions
{
public static IResourceBuilder<GarnetResource> WithDataVolume(
this IResourceBuilder<GarnetResource> builder,
string? name = null,
bool isReadOnly = false)
{
// ...
}
}
builderIResourceBuilder<GarnetResource>The resource builder.
namestring?optionalThe name of the volume. Defaults to an auto-generated name based on the application and resource names.
isReadOnlybooloptional A flag that indicates if this is a read-only volume. Setting this to true will disable Garnet persistence. Defaults to false.
IResourceBuilder<GarnetResource>The ApplicationModel.IResourceBuilder`1.
Use GarnetBuilderExtensions.WithPersistence to adjust Garnet persistence configuration, e.g.:
var cache = builder.AddGarnet("cache")
.WithDataVolume()
.WithPersistence(TimeSpan.FromSeconds(10));
WithPersistence(IResourceBuilder<GarnetResource>, TimeSpan?, long)Section titled WithPersistence(IResourceBuilder<GarnetResource>, TimeSpan?, long)extensionIResourceBuilder<GarnetResource>
Configures a Garnet container resource for persistence.
public static class GarnetBuilderExtensions
{
public static IResourceBuilder<GarnetResource> WithPersistence(
this IResourceBuilder<GarnetResource> builder,
TimeSpan? interval,
long keysChangedThreshold)
{
// ...
}
}
builderIResourceBuilder<GarnetResource>The resource builder.
intervalTimeSpan?The interval between snapshot exports. Defaults to 60 seconds.
keysChangedThresholdlongThe number of key change operations required to trigger a snapshot at the interval. Defaults to 1.
IResourceBuilder<GarnetResource>The ApplicationModel.IResourceBuilder`1.

Use with or to persist Garnet data across sessions with custom persistence configuration, e.g.:

var cache = builder.AddGarnet("cache")
.WithDataVolume()
.WithPersistence(TimeSpan.FromSeconds(10));
WithPersistence(IResourceBuilder<GarnetResource>, TimeSpan?)Section titled WithPersistence(IResourceBuilder<GarnetResource>, TimeSpan?)extensionIResourceBuilder<GarnetResource>
Configures a Garnet container resource for persistence.
public static class GarnetBuilderExtensions
{
public static IResourceBuilder<GarnetResource> WithPersistence(
this IResourceBuilder<GarnetResource> builder,
TimeSpan? interval = null)
{
// ...
}
}
builderIResourceBuilder<GarnetResource>The resource builder.
intervalTimeSpan?optionalThe interval between snapshot exports. Defaults to 60 seconds.
IResourceBuilder<GarnetResource>The ApplicationModel.IResourceBuilder`1.
Use with GarnetBuilderExtensions.WithDataBindMount or GarnetBuilderExtensions.WithDataVolume to persist Garnet data across sessions with custom persistence configuration, e.g.:
var cache = builder.AddGarnet("cache")
.WithDataVolume()
.WithPersistence(TimeSpan.FromSeconds(10));