Redis Cluster Keyslot

Redis Cluster Keyslot

Redis alta disponibilidad

Redis es un almacén de datos de baja latencia en memoria que proporciona las funciones de fragmentación y replicación. Asegura la alta disponibilidad de la instancia de Redis a sus partes interesadas. Los siguientes dos mecanismos se han utilizado en el almacén de datos Redis para proporcionar alta disponibilidad.

  • Escala horizontal con agrupación
  • Redis Sentinel

La escala horizontal siempre se centra en aumentar el número de instancias en lugar de aumentar la potencia informática por instancia. La agrupación de redis se basa en la escala horizontal, donde un conjunto de nodos se encarga del funcionamiento continuo de la instancia.

Racimo de redis

Redis Cluster consta de múltiples nodos donde cada nodo contiene un rango de ranuras hash. Por lo general, un clúster tiene 16384 ranuras hash. Cada tecla Redis está asociada con una ranura hash y para calcular la ranura hash por clave, Redis usa el CRC16 de los algoritmos de la tecla Redis Key 16384. Se basa en la técnica maestra-replica donde falla un nodo maestro, y la réplica respectiva se dispara y continúa operando en nombre del nodo fallido.

Supongamos que el nodo X falla debido a una falla de la red. Luego, el clúster Redis asignará la carga de trabajo del nodo X al nodo X1 de réplica, lo que garantizará un funcionamiento suave. Además, los clústeres de Redis pueden dividir los datos entrantes en diferentes nodos automáticamente.

Comandos de clúster Redis

Hay varios comandos disponibles para usar contra Redis Clusters. El comando de clúster es un comando contenedor que tiene varios subcomandos. Puedes usar el grupo ayuda subcomando para verificar la lista de subcomandos disponibles con su uso.

Ayuda de clúster

Como se esperaba, devuelve una respuesta de matriz como se muestra en lo siguiente.

Producción:

En esta guía, nos centraremos en el Lacera submand que está asociado con el comando contenedor GRUPO.

Comando Redis KeySlot

El Lacera El comando se usa para verificar el valor de la ranura hash para una clave redis dada que devuelve un valor entero. Siempre que necesite saber sobre el nodo asociado para una clave específica, este comando será útil. Otro caso de uso sería probar sus algoritmos de hash comparándolos con los hashes generados por este comando y verificar la similitud. además, el Lacera El comando tiene complejidad de tiempo lineal.

Sintaxis

La siguiente es la sintaxis para el Redis Lacera subcomando.

Clúster keyslot redis_key

Redis_Key: Este es el identificador único que usamos en las tiendas de datos de Redis para identificar cualquier valor almacenado.

Este comando devuelve el valor de la ranura hash de la tecla Redis especificada almacenada. Por lo general, este valor es un entero que varía de 0 a 16383 para un clúster dado.

Ejemplo 01 - Inspeccione la ranura hash y el nodo de clúster para una clave dada

Creemos un clúster Redis con seis nodos donde tres de ellos son nodos maestros, y el resto son réplicas. Podemos usar el Ranura subcomando para verificar cómo se han asignado los nodos con las ranuras hash.

ranuras de clúster

Como se esperaba, la información del clúster se ha generado como lo siguiente.

Agreguemos un par de claves a nuestro clúster Redis, como se muestra en lo siguiente.

Traveler set: 1: Lugar Francia
Traveler set: 2: Lugar India

Ahora podemos usar el Lacera subcomando para verificar cuáles son las ranuras hash que se ha asignado cada clave.

Cluster Keyslot Traveler: 1: Lugar

La salida parece la siguiente.

Devolvió el entero 8963, lo que significa que la ranura hash es 8963. Debe estar en el rango 5461 - 10922, que se muestra en la siguiente salida.

El nodo maestro es 6001, y esta clave debe almacenarse allí. Se puede seguir el mismo procedimiento para identificar el nodo para el Viajero: 2: Lugar llave.

Ejemplo 02 - Manejo de múltiples teclas por el mismo nodo Redis

El Lacera El comando admite hashtags donde el algoritmo de hash de la tecla de clúster de Redis hashes solo los caracteres entre el y . Cada vez que una tecla Redis sigue el patrón mencionado, generará la ranura hash basada en los caracteres dentro de los aparatos ortopédicos, y los otros caracteres no se consideran. Con los hashtags, podemos forzar para almacenar múltiples claves en el mismo nodo, como se muestra en el siguiente.

Creemos un par de pares de valor clave, como se muestra en lo siguiente.

Establecer usuario: 1: Carcolor Common_hash rojo
Establecer usuario: 2: Carcolor Common_hash azul

Como se muestra en el ejemplo, las teclas contienen el hashtag común Common_hash. Por lo tanto, tanto los valores de ranura hash generados por el algoritmo de hash de la tecla de clúster redis serán los mismos para ambas claves. Vamos a ver las ranuras hash para ambas claves usando el Lacera subcomando, como se muestra en el siguiente.

Usuario de clúster Keyslot: 2: Carcolor Common_hash
CLUSTER KEYSLOT USER: 1: Carcolor Common_hash

Como se esperaba, ambos comandos devuelven el mismo valor de ranura hash, 8276, lo que significa que las claves se almacenan en el mismo nodo. Según los ejemplos anteriores, puede ver cuán útil Lacera El comando es cuando se trata de grupos de Redis.

Conclusión

Para resumir, Redis admite fragmentos, replicación y alta disponibilidad por escalado horizontal. La escala horizontal se ha logrado utilizando los grupos de Redis. Como se discutió, cada clúster es una colección de nodos donde un nodo puede contener varias ranuras hash. Un clúster puede contener 16384 ranuras hash máximas y alrededor de 1000 nodos. Como se citó, los clústeres de Redis siguen la técnica maestra-replica donde falla un nodo maestro, y la réplica comenzará a funcionar en nombre del nodo fallido. Redis tiene una lista de comandos para operar en grupos. El Lacera El comando es uno de los que se usa para obtener el valor de la ranura hash para una tecla Redis específica. Este comando también admite los hashtags.