Editar

Compartir por


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 de Conectar 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 cargas variables 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.

    El seguimiento de estas orientaciones puede comportar 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.

Obtención del nombre de host, los puertos y la clave de acceso

Para conectarse al servidor de Azure Cache for Redis, el cliente de la caché necesita el nombre de host, los puertos y una clave de acceso de 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 en Azure Portal.

  • Para obtener una clave de acceso para la caché:

    1. En Azure Portal, acceda a la caché.
    2. En el menú del servicio, en Configuración, seleccione Autenticación.
    3. En el panel Autenticación, seleccione la pestaña Claves de acceso.
    4. Para copiar el valor de una clave de acceso, seleccione el icono Copiar en el campo de clave.

    Recorte de pantalla que muestra cómo buscar y copiar una clave de acceso para una instancia de Azure Cache for Redis.

  • Para obtener el nombre de host y los puertos de la memoria caché:

    1. En Azure Portal, acceda a la caché.
    2. En el menú del servicio, seleccione Información general.
    3. En Esenciales, para Nombre de host, seleccione el icono Copiar para copiar el valor del nombre de host. El valor del nombre de host tiene la forma <DNS name>.redis.cache.windows.net.
    4. En Puertos, seleccione el icono Copiar para copiar los valores de puerto.

    Recorte de pantalla que muestra cómo buscar y copiar el nombre de host y los puertos de una instancia de Azure Cache for Redis.

¿Hay un emulador local para Azure Cache for Redis?

No hay emulador local para Azure Cache for Redis. Sin embargo, puede ejecutar una copia de Redis de la comunidad en el equipo local y conectarse a ella 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;
    }
}

Redis se ejecuta de forma nativa en Linux, pero también puede usar Subsistema de Windows para Linux para ejecutar Redis en una máquina Windows. Para obtener más información, consulte Instalación de Redis en Windows Opcionalmente, puede configurar un archivo redis.conf para que coincida más estrechamente con la configuración de caché predeterminada para la instancia de Azure Cache for Redis en línea si lo desea.

¿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 usarlos, consulte 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.