Inicio rápido: Uso de Azure Cache for Redis con una aplicación web de ASP.NET Core

En este inicio rápido incorporará Azure Cache for Redis en una aplicación web de ASP.NET Core que se conecte a él para almacenar datos en la caché y recuperarlos.

También hay proveedores de almacenamiento en caché en .NET Core. Para empezar rápidamente a usar Redis con cambios mínimos en el código existente, vea:

Ir al código en GitHub

Clone el repositorio https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet-core en GitHub.

Como paso siguiente, puede ver una aplicación de eShop de escenario real que muestra los proveedores de almacenamiento en caché principales de ASP.NET: ASP.NET eShop principal mediante proveedores de almacenamiento en caché de Redis.

Características incluidas:

  • Almacenamiento en caché distribuido de Redis
  • Proveedor de estado de sesión de Redis

Las instrucciones de implementación se encuentran en el README.md.

Requisitos previos

Creación de una caché

  1. Para crear una instancia de caché, inicie sesión en Azure Portal y seleccione Crear un recurso.

    Crear un recurso está resaltado en el panel de navegación izquierdo.

  2. En la página Nuevo, seleccione Base de datos y, a continuación, seleccione Azure Cache for Redis.

    En Nuevo, están resaltados Bases de datos y Azure Cache for Redis.

  3. En la página Nueva instancia de Redis Cache, configure las opciones de la nueva caché.

    Configuración Elegir un valor Descripción
    Suscripción Desplácese hacia abajo y seleccione su suscripción. La suscripción en la que se creará esta nueva instancia de Azure Cache for Redis.
    Grupos de recursos Desplácese hacia abajo y seleccione un grupo de recursos o Crear nuevo y escriba un nombre nuevo para el grupo de recursos. Nombre del grupo de recursos en el que se van a crear la caché y otros recursos. Al colocar todos los recursos de la aplicación en un grupo de recursos, puede administrarlos o eliminarlos fácilmente.
    Nombre DNS Escriba un nombre único. El nombre de la memoria caché debe ser una cadena de entre 1 y 63 caracteres, y solo puede contener números, letras o guiones. El nombre debe comenzar y terminar por un número o una letra y no puede contener guiones consecutivos. El nombre de host de la instancia de caché es <DNS name>.redis.cache.windows.net.
    Ubicación Desplácese hacia abajo y seleccione una ubicación. Selecciona una región cerca de otros servicios que usan la memoria caché.
    Tipo de caché Desplácese hacia abajo y seleccione un nivel. El nivel determina el tamaño, rendimiento y características disponibles para la memoria caché. Para más información, consulte la introducción a Azure Redis Cache.
  4. Seleccione la pestaña Redes o elija el botón Redes situado en la parte inferior de la página.

  5. En la pestaña Redes, seleccione el método de conectividad.

  6. Seleccione la pestaña Siguiente: Avanzadas o el botón Siguiente: Avanzadas en la parte inferior de la página para ver la pestaña Avanzadas.

    Captura de pantalla que muestra la pestaña Opciones avanzadas en el panel de trabajo y la opción que se puede seleccionar.

    • En cachés básicas o estándar, cambie la selección a un puerto que no sea TLS. También puede seleccionar si desea habilitar la Autenticación de Microsoft Entra.
    • En el caso de una caché Premium, configure las opciones para un puerto que no sea TLS, la agrupación en clústeres, la identidad administrada y la persistencia de datos. También puede seleccionar si desea habilitar la Autenticación de Microsoft Entra.
  7. Seleccione el botón Siguiente: Opciones avanzadas o elija el botón Siguiente: Etiquetas situado en la parte inferior de la página.

  8. Opcionalmente, en la pestaña Etiquetas, escriba el nombre y el valor si desea clasificar el recurso.

  9. Seleccione Revisar + crear. Pasará a la pestaña Revisar y crear, donde Azure valida la configuración.

  10. Tras aparecer el mensaje verde Validación superada, seleccione Crear.

Se tarda un tiempo en crear una memoria caché. Puede supervisar el progreso en la página Información general de Azure Cache for Redis. Cuando Estado se muestra como En ejecución, la memoria caché está lista para su uso.

Recuperación del nombre de host, los puertos y las claves de acceso desde Azure Portal

Para conectar el servidor de Azure Cache for Redis, el cliente de dicha caché necesita el nombre de host, los puertos y una clave para la caché. Es posible que algunos clientes utilicen nombres ligeramente diferentes para estos elementos. Puede obtener el nombre de host, los puertos y las claves de Azure Portal.

  • Para obtener las claves de acceso, seleccione Autenticación en el menú Recurso. A continuación, seleccione la pestaña Claves de acceso.

    Claves de Azure Redis Cache

  • Para obtener el nombre de host y los puertos de la memoria caché, seleccione Información general en el menú Recurso. El nombre de host tiene el formato <nombre_DNS>.redis.cache.windows.net.

    Propiedades de Azure Redis Cache

Tome nota del NOMBRE DE HOST y de la clave de acceso principal. Usará estos valores más adelante para construir el secreto CacheConnection.

Adición de un secreto local para la cadena de conexión

En la ventana de comandos, ejecute el siguiente comando para almacenar un secreto nuevo denominado CacheConnection después de reemplazar los marcadores de posición (incluidos los corchetes angulares) por el nombre de la caché y la clave de acceso principal:

dotnet user-secrets set CacheConnection "<cache name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<primary-access-key>"

Conectar a la caché con RedisConnection

La clase RedisConnection administra la conexión a la memoria caché. La conexión se realiza en esta instrucción en HomeController.cs de la carpeta Controllers:

_redisConnection = await _redisConnectionFactory;

En RedisConnection.cs, verá que el espacio de nombres StackExchange.Redis se agrega al código. Esto es necesario para la clase RedisConnection.

using StackExchange.Redis;

El código de RedisConnection garantiza que siempre haya una conexión correcta a la memoria caché mediante la administración de la instancia ConnectionMultiplexer desde StackExchange.Redis. La clase RedisConnection vuelve a crear la conexión cuando se pierde una conexión y no se puede volver a conectar automáticamente.

Para obtener más información, consulte StackExchange.Redis y el código en un repositorio de GitHub.

Vistas de diseño en el ejemplo

El diseño de página principal de este ejemplo se almacena en el archivo _Layout.cshtml. En esta página, se inician las pruebas de caché reales haciendo clic en la Prueba de Azure Cache for Redis de esta página.

  1. Abra Views\Shared\_Layout.cshtml.

  2. Debería verlo en <div class="navbar-header">:

    <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="RedisCache">Azure Cache for Redis Test</a>
    

captura de pantalla de la página principal

Mostrar datos de la memoria caché

En la página principal, seleccione Prueba de Azure Cache for Redis para ver la salida de ejemplo.

  1. En el Explorador de soluciones, expanda la carpeta Vistas y, luego, haga clic con el botón derecho en la carpeta Inicio.

  2. Debería ver este código en el archivo RedisCache.cshtml.

    @{
        ViewBag.Title = "Azure Cache for Redis Test";
    }
    
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>
    <br /><br />
    <table border="1" cellpadding="10">
        <tr>
            <th>Command</th>
            <th>Result</th>
        </tr>
        <tr>
            <td>@ViewBag.command1</td>
            <td><pre>@ViewBag.command1Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command2</td>
            <td><pre>@ViewBag.command2Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command3</td>
            <td><pre>@ViewBag.command3Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command4</td>
            <td><pre>@ViewBag.command4Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command5</td>
            <td><pre>@ViewBag.command5Result</pre></td>
        </tr>
    </table>
    

Probar la aplicación localmente

  1. Ejecute el siguiente comando en la ventana Comandos para compilar la aplicación:

    dotnet build
    
  2. Luego, ejecute la aplicación con el siguiente comando:

    dotnet run
    
  3. Vaya a https://localhost:5001 en el explorador web.

  4. Seleccione Azure Redis Cache Test (Prueba de Azure Redis Cache) en la barra de navegación de la página web para probar el acceso a la memoria caché.

Captura de pantalla de la prueba simple completada localmente

Limpieza de recursos

Si desea seguir usando los recursos que creó en este artículo, mantenga el grupo de recursos.

De lo contrario, si ya ha terminado con los recursos, puede eliminar el grupo de recursos de Azure que ha creado para evitar cargos.

Importante

La eliminación de un grupo de recursos es irreversible. Cuando elimine un grupo de recursos, todos los recursos contenidos en él se eliminan permanentemente. Asegúrese de no eliminar por accidente el grupo de recursos o los recursos equivocados. Si ha creado los recursos en un grupo de recursos existente que contiene recursos que desea conservar, puede eliminar cada recurso individualmente en lugar de eliminar el grupo de recursos.

Para eliminar un grupo de recursos

  1. Inicie sesión en Azure Portal y después seleccione Grupos de recursos.

  2. Seleccione el grupo de recursos que desea eliminar.

    Si hay muchos grupos de recursos, use el cuadro Filtro para cualquier campo... y escriba el nombre del grupo de recursos que creó para este artículo. Seleccione el grupo de recursos en la lista de resultados.

    Captura de pantalla que muestra una lista de grupos de recursos para eliminar en el panel de trabajo.

  3. Seleccione Eliminar grupo de recursos.

  4. Se le pedirá que confirme la eliminación del grupo de recursos. Escriba el nombre del grupo de recursos para confirmar y, después, seleccione Eliminar.

    Captura de pantalla que muestra un formulario que requiera el nombre del recurso para confirmar la eliminación.

Transcurridos unos instantes, el grupo de recursos y todos sus recursos se eliminan.