Preguntas frecuentes sobre el desarrollo para Azure Cache for Redis

En este artículo se proporcionan respuestas a preguntas habituales sobre cómo desarrollar para Azure Cache for Redis.

¿Cómo se empieza con Azure Cache for Redis?

Hay varias maneras de empezar a utilizar Azure Cache for Redis.

Si no tiene una cuenta de Azure, siga estos pasos:

¿Qué hacen las opciones de configuración de StackExchange.Redis?

StackExchange.Redis tiene muchas opciones. En esta sección se describen algunas de las configuraciones comunes. Para obtener más información acerca de las opciones de StackExchange.Redis, consulte Configuración de StackExchange.Redis.

ConfigurationOptions Descripción Recomendación
AbortOnConnectFail Cuando se establece en true, la conexión no se puede volver a conectar después de un error de red. Establézcalo en false y deje que StackExchange.Redis se vuelva a conectar automáticamente.
ConnectRetry El número de veces que se repiten los intentos de conexión durante la conexión inicial. Consulte la siguiente imagen para obtener instrucciones.
ConnectTimeout Tiempo de espera en milisegundos para operaciones de conexión. Consulte la siguiente imagen para obtener instrucciones.

Habitualmente, los valores predeterminados del cliente son suficientes. Ajuste las opciones en función de su carga de trabajo.

Reintentos

  • Para ConnectRetry y ConnectTimeout, la regla general es fracasar y responder rápido a los errores y volver a intentarlo. Esta guía se basa en la carga de trabajo y en cuánto tiempo, como promedio, tarda el cliente en enviar un comando de Redis y recibir una respuesta.
  • Permita que StackExchange.Redis se vuelva a conectar automáticamente en lugar de comprobar el estado de conexión y volver a conectarse. Evite el uso de la propiedad ConnectionMultiplexer.IsConnected.
  • Efecto bola de nieve: a veces puede encontrarse con un problema cuando lo está intentando y este error aumenta y nunca se recupera. En este caso, considere la posibilidad de utilizar un algoritmo de reintento de retroceso exponencial, tal y como se describe en el artículo Control de errores transitorios publicado por el grupo de patrones y procedimientos de Microsoft.

Valores de tiempo de expiración

  • Tenga en cuenta la carga de trabajo y establezca los valores para que coincidan. Si almacena valores grandes, establezca el tiempo de expiración en un valor superior.
  • Establezca AbortOnConnectFail en False y deje que StackExchange.Redis se vuelva a conectar automáticamente.
  • Use una única instancia de larga duración ConnectionMultiplexer en lugar de crear una nueva conexión para cada solicitud. Para obtener un ejemplo de cómo administrar una conexión, consulte la clase "RedisConnection" en Conexión a la caché con RedisConnection.
  • Establezca la propiedad ConnectionMultiplexer.ClientName a un nombre único de la instancia de aplicación con fines de diagnóstico.
  • Use varias instancias ConnectionMultiplexer para cargas de trabajo personalizadas.
    • Puede seguir este modelo si tiene una carga variable en la aplicación. Por ejemplo:
    • Puede tener un multiplexor para tratar con claves grandes.
    • Puede tener un multiplexor para tratar con claves pequeñas.
    • Puede establecer distintos valores para los tiempos de expiración de la conexión así como lógica de reintento para cada ConnectionMultiplexer que use.
    • Establezca la propiedad ClientName en cada multiplexor para ayudar con el diagnóstico.
    • Esta guía puede conducir a una latencia más simplificada por ConnectionMultiplexer.

¿Qué clientes de Azure Cache for Redis puedo usar?

Una de las grandes virtudes de Redis es que hay muchos clientes que admiten muchos lenguajes de desarrollo diferentes. Para obtener una lista de clientes, consulte Redis clients(Clientes de Redis). Para ver tutoriales que tratan sobre varios lenguajes y clientes diferentes, consulte Inicio rápido: Uso de Azure Cache for Redis con .NET Framework.

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

¿Hay un emulador local para Azure Cache for Redis?

No hay emulador local para Azure Cache for Redis. Puede ejecutar la versión de MSOpenTech de redis-server.exe desde las herramientas de la línea de comandos de Redis en el equipo local. A continuación, conéctese a él para obtener una experiencia similar a un emulador de caché local, como se muestra en el ejemplo siguiente:

private static Lazy<ConnectionMultiplexer>
    lazyConnection = new Lazy<ConnectionMultiplexer> (() =>
    {
        // Connect to a locally running instance of Redis to simulate
        // a local cache emulator experience.
        return ConnectionMultiplexer.Connect("127.0.0.1:6379");
    });

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

Si lo desea, también puede configurar el archivo redis.conf para ajustarse con más precisión a la configuración de caché predeterminada del servicio Azure Cache for Redis en línea.

¿Cómo puedo ejecutar comandos de Redis?

Puede usar cualquiera de los comandos enumerados en el artículo de Comandos de Redis, salvo los comandos indicados en Redis commands not supported in Azure Cache for Redis (Comandos de Redis no admitidos en Azure Cache for Redis). Para ejecutar comandos de Redis, tiene varias opciones.

Si tiene una caché Estándar o Premium, puede ejecutar comandos de Redis mediante la Consola de Redis. La consola de Redis ofrece una manera segura de ejecutar comandos de Redis en Azure Portal.

También puede usar las herramientas de línea de comandos de Redis. Para utilizarlas, siga estos pasos:

  1. Descargue las herramientas de línea de comandos de Redis.

  2. Conexión a la memoria caché mediante redis-cli.exe.

  3. Pase el punto de conexión de caché con el modificador -h y la clave con - a, tal como se muestra en el ejemplo siguiente:

    redis-cli -h <Azure Cache for Redis name>.redis.cache.windows.net -a <key>

Nota:

Las herramientas de línea de comandos de Redis no funcionan con el puerto TLS, pero puede usar una utilidad como stunnel para conectar de forma segura las herramientas al puerto TLS si sigue las instrucciones del artículo Uso de la herramienta de línea de comandos de Redis con Azure Cache for Redis.

¿Por qué Azure Cache for Redis no tiene una referencia de biblioteca de clases MSDN?

Microsoft Azure Cache for Redis se basa en Redis, el conocido almacén de datos en memoria de código abierto. Puede usar una amplia variedad de clientes de Redis para muchos lenguajes de programación. Cada cliente tiene su propia API que realiza llamadas a la instancia de Azure Cache for Redis mediante los comandos de Redis.

Dado que cada cliente es diferente, no puede encontrar una referencia de clase centralizada en MSDN. Cada cliente mantiene su propia documentación de referencia. Además de la documentación de referencia, hay varios tutoriales que muestran cómo empezar a trabajar con Azure Cache for Redis con distintos lenguajes y clientes de caché. Para acceder a estos tutoriales, consulte Cómo usar Azure Cache for Redis y los artículos relacionados de la tabla de contenido.

¿Puedo usar Azure Cache for Redis como caché de la sesión PHP?

Sí, para usar Azure Cache for Redis como una memoria caché de sesión PHP, especifique la cadena de conexión a la instancia de Azure Cache for Redis en session.save_path.

Importante

Al usar Azure Cache for Redis como una caché de sesión PHP, debe codificar como dirección URL la clave de seguridad que se usa para conectarse a la memoria caché, tal como se muestra en el ejemplo siguiente:

session.save_path = "tcp://mycache.redis.cache.windows.net:6379?auth=<url encoded primary or secondary key here>";

Si la clave no está codificada como dirección URL, puede recibir una excepción con un mensaje similar al siguiente: Failed to parse session.save_path

Para más información sobre el uso de Azure Cache for Redis como caché de la sesión PHP con el cliente de PhpRedis, consulte PHP Session handler (Controlador de sesión de PHP).

¿Cuáles son las bases de datos de Redis?

Las bases de datos de Redis son simplemente una separación lógica de los datos en la misma instancia de Redis. La memoria caché se comparte entre todas las bases de datos y el consumo real de una base de datos depende de los pares clave-valor almacenados en esa base de datos. Por ejemplo, una caché de C6 tiene 53 GB de memoria y una de P5 tiene 120 GB. Puede elegir colocar los 53 GB o los 120 GB en una base de datos o dividirlos entre varias bases de datos.

Nota

Cuando se utiliza una instancia Prémium de Azure Cache for Redis con clústeres habilitados, solo está disponible la base de datos 0. Se trata de una limitación de Redis intrínseca y no es específica de Azure Cache for Redis.

Más información sobre otras preguntas frecuentes sobre Azure Cache for Redis.