Belldandy
Un blog? Que es esto, 2004? Mi nombre es Andrea, y hace muchos años que trabajo en sistemas.
AWS Certified: Solution Architect - Associate
AWS Certified: Developer - Associate
Archivo
Logo

AWS .NET Distributed Cache Provider for Amazon DynamoDB

Por — Publicado el 8 jul 2025, 07:51:59 —  Categorias: .NET, AWS

Recien salido del horno! AWS acaba de anunciar que estan disponibles las librerias para .NET para usar DynamoDB como distributed cache y tambien como session manager (hace unos meses habian "jubilado" la version anterior de la libreria de sesiones)

Para implementarla, hay que seguir 4 pasos (literal)

  1. Instalar la libreria AWS.AspNetCore.DistributedCacheProvider desde NuGet
  2. Implementar el codigo en el startup
builder.Services.AddAWSDynamoDBDistributedCache(options =>
{
options.TableName = "table_name";
options.PartitionKeyName = "id";
options.TTLAttributeName = "cache_ttl";
});
  1. Implementar el cache en tus metodos
    protected override async Task OnInitializedAsync()
    {
        // Cargar del cache
        var cachedForecastBytes = await DistributedCache.GetAsync("weatherForecast");
    
        // Si encontramos algo, convertirlo a bytes para evitar dolores de cabeza de encoding
        if (cachedForecastBytes != null)
        {
            CurrentForecast = ForecastConverter.FromBytes(cachedForecastBytes);
        }
        else
        {
            // No hay cache, buscar los datos (en este ejemplo usa el viejo y conocido Weather Forecast)
            CurrentForecast = WeatherPredictor.GenerateNewForecast();
            
            var options = new DistributedCacheEntryOptions()
            {
                AbsoluteExpiration = DateTimeOffset.UtcNow.AddHours(24)
            };
            
            // Guarda en el cache
            await DistributedCache.SetAsync("weatherForecast", 
                ForecastConverter.ToBytes(CurrentForecast), 
                options);    
        }
    }
  1. Listo! (obviamente tenes que tener configurado el credential chain, ya sea con un AccessKey/SecurityKey, un profile, rol para tu instancia EC2/Lambda, etc, y tiene que tener permiso de acceso de escritura para esa tabla en DynamoDb).

Me gustaria ver un analisis de performance puro de esto versus Redis. Obvio Redis va a ser mucho mas rapido, pero tenes que pagar por la instancia, o managearla vos. DynamoDb es serverless, y practicamente gratis.

AWS .NET Distributed Cache Provider for Amazon DynamoDB now Generally Available ▶

Volver

Comentarios Recientes

No hay comentarios, porque no dejás alguno?

¡Comentario agregado con éxito!
Angel

Deja un comentario

(no se publica)