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.
- Puede consultar uno de los tutoriales disponibles para .NET, ASP.NET, Java, Node.js y Python.
- Puede ver el vídeo How to Build High Performance Apps Using Microsoft Azure Cache for Redis(Procedimiento para compilar aplicaciones de alto rendimiento con Azure Cache for Redis).
- Puede consultar la documentación de los clientes de ejemplo que coincidan con el lenguaje de desarrollo que se utiliza en el proyecto. Hay muchos clientes de Redis que pueden utilizarse con Azure Cache for Redis. Para ver una lista de clientes de Redis, consulte https://redis.io/clients.
Si no tiene una cuenta de Azure, siga estos pasos:
- Abrir una cuenta de Azure gratis. Obtenga créditos que puede usar para probar los servicios de Azure de pago. Incluso después de que se agoten los créditos, puede mantener la cuenta y usar los servicios y características gratuitos de Azure.
- Activar los beneficios de suscripción a Visual Studio. Su suscripción a MSDN le proporciona créditos todos los meses que puede usar para servicios de Azure de pago.
¿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.
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.
¿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 Uso de Azure Cache for Redis y sus artículos relacionados en 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.
Contenido relacionado
Más información sobre otras preguntas frecuentes sobre Azure Cache for Redis.