Este artículo proporciona respuestas a preguntas comunes sobre cómo desarrollar para Azure Managed Redis (versión preliminar).
¿Cómo puedo empezar a utilizar Azure Managed Redis (versión preliminar)?
Hay varias formas de empezar a utilizar Azure Managed Redis (versión preliminar).
- Puede consultar uno de los tutoriales disponibles para .NET, ASP.NET, Java, Node.js y Python.
- Puede explorar las rutas de aprendizaje de Azure 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 Redis que se pueden utilizar con Azure Managed 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 Redis puedo utilizar?
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 obtener tutoriales que abarcan varios idiomas y clientes diferentes, consulte Cómo utilizar Azure Managed Redis.
¿Existe un emulador local para Azure Managed Redis?
No hay emulador local para Azure Managed 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
¿Cómo puedo ejecutar comandos de Redis?
Puede utilizar cualquiera de los comandos enumerados en Comandos de Redis excepto los comandos enumerados en Comandos de Redis no admitidos en Azure Managed Redis. Para ejecutar comandos de Redis, tiene varias opciones.
También puede usar las herramientas de línea de comandos de Redis. Para utilizarlas, consulte Uso de la herramienta de línea de comandos Redis con Azure Managed Redis
¿Por qué Azure Managed Redis no tiene una referencia en la biblioteca de clases de MSDN?
Microsoft Azure Managed Redis se basa en el popular almacén de datos en memoria Redis. 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 Managed Redis utilizando comandos 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 utilizar Azure Managed Redis utilizando diferentes idiomas y clientes de caché. Para acceder a estos tutoriales, consulte Cómo utilizar Azure Managed Redis y sus artículos hermanos en el índice.
¿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. En este momento, Azure Managed Redis solo admite una base de datos por instancia.
Contenido relacionado
Obtenga más información sobre otras Preguntas frecuentes sobre Azure Managed Redis.