Caché Redis es un tipo de almacenamiento, como session, pero en Azure, es decir, este tipo de caché permanece disponible entre las diferentes aplicaciones que lo implementen y si, por ejemplo, tuviésemos un carrito de la compra en el navegador de un ordenador, podríamos seguir teniendo ese carrito disponible si abrimos la aplicación en el movil.

Para crear un almacenamiento Redis debemos seguir los siguientes pasos:

1. Abrimos el portal de Azure.
2. Crear nuevo recurso.
3. Buscamos Bases de datos y seleccionamos Redis Cache.


redis1


4. Seleccionamos tipo de suscripción, grupo de recursos, el nombre de DNS, la ubicación y el tipo de caché.


redis2


5. Revisar y crear.

Una vez que hemos creado el recurso, lo abrimos y en el margen izquierdo buscamos la optión configuración/claves de acceso.


redis3


Para trabajar con Redis necesitamos utilizar la cadena de conexión principal, por lo que la copiamos y la pegaremos en nuestro archivo appsettings.json de nuestro proyecto.


redis4

A continuación crearemos una aplicación MVC de .Net Core para almacenar elementos y otra aplicación de consola para comprobar que no importa desde donde llamamos a la caché de Redis, porque la información almacenada seguirá disponible entre ambas aplicaciones.

Una vez hayamos creado el proyecto MVC, el siguiente paso es instalar los NuGet, en este caso son dos:

redis6
redis5

Aunque colocaremos más adelante la cadena de conexión principal que hemos recuperado de Azure, en el Startup.cs, para poder trabajar con Redis necesitamos una clase static con dos métodos: uno para crear la conexión y otro para acceder a ella.

// creamos la conexión con ConnectionMultiplexer

private static Lazy<ConnectionMultiplexer> Crearconexion = new Lazy<ConnectionMultiplexer>(
            () => { return ConnectionMultiplexer.Connect(
                "CADENA DE CONEXIÓN PRINCIPAL"); 
            });

Al ser una clase estática no podemos inyectar la cadena de conexión desde Startup.cs, sino que hay que colocarla a mano.

// recuperamos la conexión

public static ConnectionMultiplexer Connection 
{ 
    get { return Crearconexion.Value; } 
}

Para empezar a almacenar en Redis únicamente tenemos que inicializar una variable de tipo IDatabase llamando al método Connection que acabamos de crear.

private IDatabase redis;

public HomeController()
{
 this.redis = CacheRedisMultiplexer.Connection.GetDatabase();
}

Métodos:

  • Almacenar:
this.redis.StringSet("KEY",JsonConvert.SerializeObject(OBJETO),
TimeSpan.FromMinutes(5));
  • Recuperar:
this.redis.StringGet("KEY");
  • Eliminar:
this.redis.KeyDelete("KEY");

Nos dirigimos al Startup.cs y configuramos StackExchangeRedisCache.

 public void ConfigureServices(IServiceCollection services)
  {
   services.AddStackExchangeRedisCache(op => op.Configuration =    this.Configuration["redis"]);

  }

Autor/a: Carlota Lobo Sanz

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma 

Centro: Tajamar 

Año académico: 2020-2021 

Código / recursos utilizados / Otros datos de interés: https://github.com/carlotaLobo/PostCacheRedis.git

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.