コンテンツにスキップ

Redis Distributed Caching client integration

このコンテンツはまだ日本語訳がありません。

Redis logo

To get started with the Redis distributed caching integration, install the 📦 Aspire.StackExchange.Redis.DistributedCaching NuGet package:

.NET CLI — Add Aspire.StackExchange.Redis.DistributedCaching package
dotnet add package Aspire.StackExchange.Redis.DistributedCaching

In the Program.cs file of your client-consuming project, call the AddRedisDistributedCache extension to register the required services for distributed caching:

builder.AddRedisDistributedCache(connectionName: "cache");

You can then retrieve the IDistributedCache instance using dependency injection:

public class ExampleService(IDistributedCache cache)
{
// Use cache...
}

Due to its limitations, you cannot register multiple IDistributedCache instances simultaneously. However, there may be scenarios where you need to register multiple Redis clients. To register a keyed Redis client for IDistributedCache, call the AddKeyedRedisDistributedCache method:

builder.AddKeyedRedisClient(name: "chat");
builder.AddKeyedRedisDistributedCache(name: "product");

Then retrieve the instances:

public class ExampleService(
[FromKeyedServices("chat")] IConnectionMultiplexer chatConnectionMux,
IDistributedCache productCache)
{
// Use product cache...
}

When using a connection string from the ConnectionStrings configuration section:

builder.AddRedisDistributedCache("cache");

Then the connection string will be retrieved:

{
"ConnectionStrings": {
"cache": "localhost:6379"
}
}

The Redis distributed caching integration supports Microsoft.Extensions.Configuration. Example appsettings.json:

{
"Aspire": {
"StackExchange": {
"Redis": {
"DistributedCaching": {
"ConnectionString": "localhost:6379",
"DisableHealthChecks": false,
"DisableTracing": false
}
}
}
}
}

You can pass the delegate to set up options inline:

builder.AddRedisDistributedCache(
"cache",
settings => settings.DisableTracing = true);

You can also configure the ConfigurationOptions:

builder.AddRedisDistributedCache(
"cache",
null,
static options => options.ConnectTimeout = 3_000);

By default, Aspire integrations enable health checks. The Redis distributed caching integration adds a health check that verifies the Redis instance is reachable.

The Redis distributed caching integration uses standard .NET logging.

The integration emits tracing activities using OpenTelemetry.

The integration emits metrics using OpenTelemetry.