# AzureRedisExtensions Methods

- Package: [Aspire.Hosting.Azure.Redis](/reference/api/csharp/aspire.hosting.azure.redis.md)
- Type: [AzureRedisExtensions](/reference/api/csharp/aspire.hosting.azure.redis/azureredisextensions.md)
- Kind: `Methods`
- Members: `6`

Provides extension methods for adding the Azure Redis resources to the application model.

## AddAzureRedis(IDistributedApplicationBuilder, string)

> **Obsolete:** This method is obsolete and will be removed in a future version. Use AddAzureManagedRedis instead which provisions Azure Managed Redis.

- Name: `AddAzureRedis(IDistributedApplicationBuilder, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<AzureRedisCacheResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/cbc352350f1a9bafbaff10d14a2c8de4ac186a48/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs#L119-L126)

Adds an Azure Cache for Redis resource to the application model.

```csharp
public static class AzureRedisExtensions
{
    public static IResourceBuilder<AzureRedisCacheResource> AddAzureRedis(
        this IDistributedApplicationBuilder builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The builder for the distributed application.
- `name` (`string`)
  The name of the resource.

## Returns

`IResourceBuilder<AzureRedisCacheResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` builder.

## Remarks

By default, the Azure Cache for Redis resource is configured to use Microsoft Entra ID (Azure Active Directory) for authentication. This requires changes to the application code to use an azure credential to authenticate with the resource. See https://github.com/Azure/Microsoft.Azure.StackExchangeRedis for more information. You can use the [AzureRedisExtensions.WithAccessKeyAuthentication(IResourceBuilder<AzureRedisCacheResource>)](/reference/api/csharp/aspire.hosting.azure.redis/azureredisextensions/methods.md#withaccesskeyauthentication-iresourcebuilder-azurerediscacheresource) method to configure the resource to use access key authentication. The following example creates an Azure Cache for Redis resource and referencing that resource in a .NET project.

```csharp
var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddAzureRedis("cache");

builder.AddProject<Projects.ProductService>()
    .WithReference(cache);

builder.Build().Run();
```

## AsAzureRedis(IResourceBuilder<RedisResource>)

> **Obsolete:** This method is obsolete and will be removed in a future version. Use AddAzureManagedRedis instead which provisions Azure Managed Redis.

- Name: `AsAzureRedis(IResourceBuilder<RedisResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<RedisResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/cbc352350f1a9bafbaff10d14a2c8de4ac186a48/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs#L86)

Configures resource to use Azure for local development and when doing a deployment via the Azure Developer CLI.

```csharp
public static class AzureRedisExtensions
{
    public static IResourceBuilder<RedisResource> AsAzureRedis(
        this IResourceBuilder<RedisResource> builder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<RedisResource>`)
  The `ApplicationModel.IResourceBuilder`1` builder.

## Returns

`IResourceBuilder<RedisResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` builder.

## PublishAsAzureRedis(IResourceBuilder<RedisResource>)

> **Obsolete:** This method is obsolete and will be removed in a future version. Use AddAzureManagedRedis instead which provisions Azure Managed Redis.

- Name: `PublishAsAzureRedis(IResourceBuilder<RedisResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<RedisResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/cbc352350f1a9bafbaff10d14a2c8de4ac186a48/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs#L27)

Configures the resource to be published as Azure Cache for Redis when deployed via Azure Developer CLI.

```csharp
public static class AzureRedisExtensions
{
    public static IResourceBuilder<RedisResource> PublishAsAzureRedis(
        this IResourceBuilder<RedisResource> builder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<RedisResource>`)
  The `ApplicationModel.IResourceBuilder`1` builder.

## Returns

`IResourceBuilder<RedisResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` builder.

## RunAsContainer(IResourceBuilder<AzureRedisCacheResource>, Action<IResourceBuilder<RedisResource>>)

> **Obsolete:** This method is obsolete and will be removed in a future version. Use AddAzureManagedRedis instead which provisions Azure Managed Redis.

- Name: `RunAsContainer(IResourceBuilder<AzureRedisCacheResource>, Action<IResourceBuilder<RedisResource>>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<AzureRedisCacheResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/cbc352350f1a9bafbaff10d14a2c8de4ac186a48/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs#L157-L173)

Configures an Azure Cache for Redis resource to run locally in a container.

```csharp
public static class AzureRedisExtensions
{
    public static IResourceBuilder<AzureRedisCacheResource> RunAsContainer(
        this IResourceBuilder<AzureRedisCacheResource> builder,
        Action<IResourceBuilder<RedisResource>>? configureContainer = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<AzureRedisCacheResource>`)
  The Azure Cache for Redis resource builder.
- `configureContainer` (`Action<IResourceBuilder<RedisResource>>`) `optional`
  Callback that exposes underlying container to allow for customization.

## Returns

`IResourceBuilder<AzureRedisCacheResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` builder.

## Remarks

The following example creates an Azure Cache for Redis resource that runs locally in a Redis container and referencing that resource in a .NET project.

```csharp
var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddAzureRedis("cache")
    .RunAsContainer();

builder.AddProject<Projects.ProductService>()
    .WithReference(cache);

builder.Build().Run();
```

## WithAccessKeyAuthentication(IResourceBuilder<AzureRedisCacheResource>)

> **Obsolete:** This method is obsolete and will be removed in a future version. Use AddAzureManagedRedis instead which provisions Azure Managed Redis.

- Name: `WithAccessKeyAuthentication(IResourceBuilder<AzureRedisCacheResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<AzureRedisCacheResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/cbc352350f1a9bafbaff10d14a2c8de4ac186a48/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs#L200-L219)

Configures the resource to use access key authentication for Azure Cache for Redis.

```csharp
public static class AzureRedisExtensions
{
    public static IResourceBuilder<AzureRedisCacheResource> WithAccessKeyAuthentication(
        this IResourceBuilder<AzureRedisCacheResource> builder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<AzureRedisCacheResource>`)
  The Azure Cache for Redis resource builder.

## Returns

`IResourceBuilder<AzureRedisCacheResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` builder.

## Remarks

The following example creates an Azure Cache for Redis resource that uses access key authentication.

```csharp
var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddAzureRedis("cache")
    .WithAccessKeyAuthentication();

builder.AddProject<Projects.ProductService>()
    .WithReference(cache);

builder.Build().Run();
```

## WithAccessKeyAuthentication(IResourceBuilder<AzureRedisCacheResource>, IResourceBuilder<IAzureKeyVaultResource>)

> **Obsolete:** This method is obsolete and will be removed in a future version. Use AddAzureManagedRedis instead which provisions Azure Managed Redis.

- Name: `WithAccessKeyAuthentication(IResourceBuilder<AzureRedisCacheResource>, IResourceBuilder<IAzureKeyVaultResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<AzureRedisCacheResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/cbc352350f1a9bafbaff10d14a2c8de4ac186a48/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs#L231-L246)

Configures the resource to use access key authentication for Azure Cache for Redis.

```csharp
public static class AzureRedisExtensions
{
    public static IResourceBuilder<AzureRedisCacheResource> WithAccessKeyAuthentication(
        this IResourceBuilder<AzureRedisCacheResource> builder,
        IResourceBuilder<IAzureKeyVaultResource> keyVaultBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<AzureRedisCacheResource>`)
  The Azure Cache for Redis resource builder.
- `keyVaultBuilder` (`IResourceBuilder<IAzureKeyVaultResource>`)
  The Azure Key Vault resource builder where the connection string used to connect to this AzureRedisCacheResource will be stored.

## Returns

`IResourceBuilder<AzureRedisCacheResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` builder.
