sql >> Base de Datos >  >> NoSQL >> Redis

Uso de Redis Replication en diferentes máquinas (multimaestro)

Está solicitando una solución activa-activa, también conocida como multimaestro, pero su pregunta sugiere que es posible que no la necesite.

Si solo necesita que una de las bases de datos esté disponible para escrituras, es decir, todas las escrituras siempre se ejecutan, puede lograrlo con la replicación maestro-esclavo estándar de Redis. Dirija su aplicación para usar el maestro para escrituras y (potencialmente) haga que su esclavo también sirva algunas de las lecturas. Si el maestro falla, promueva al esclavo en el DC secundario para que sea el nuevo maestro y redirija su aplicación/clientes para que lo usen. El monitoreo y la promoción se pueden lograr con Redis' Sentinel.

Hay algunas cosas que deberá tener en cuenta al implementar este tipo de configuración. En primer lugar, tenga en cuenta que la replicación de Redis es asíncrona, por lo que, según la carga de su maestro, el volumen de escrituras y la calidad del enlace de red de la replicación, podría perder algunas de las actualizaciones recientes en caso de una conmutación por error. En segundo lugar, y sobre el mismo tema, un enlace de red entre DC podría ser propenso a un ancho de banda limitado y una mayor latencia:debe configurar Redis para manejar esto y quizás usar compresión para ese tráfico (por ejemplo, a través de un túnel SSH). Por último, para detectar fallas con precisión, querrá tener al menos 3 Sentinels en diferentes ubicaciones. Pero a pesar de estos desafíos, todo eso es factible.

Dicho esto, una configuración multimaestro en la que las escrituras se pueden realizar arbitrariamente en cualquier base de datos no lo es. respaldado por Redis en este momento. Si eso es realmente lo que necesita, considere usar una solución diferente.

Nota:según sus requisitos exactos, si puede garantizar que las escrituras en diferentes DC se excluyen mutuamente (es decir, cada DC obtiene escrituras solo en un subconjunto distinto de claves que no comparte el otro DC), puede usar dos bases de datos con un maestro en cada DC y el esclavo en el otro.