Explicación y uso de etiquetas de hash
Diseño de etiquetas de hash
Las operaciones de múltiples claves, como las que utilizan el comando MSET o los scripts de Lua, son atómicas. Todas las claves especificadas se ejecutan al mismo tiempo. Sin embargo, en un clúster, cada clave es hash a una partición dada, y las operaciones de múltiples claves ya no son atómicas. Las claves pueden asignarse a diferentes ranuras. Como resultado, algunas claves se actualizan, mientras que otras no. Si hay una etiqueta de hash, el clúster determina qué ranura asignar una clave basándose en la etiqueta de hash. Las claves con la misma etiqueta de hash se asignan a la misma ranura.
Uso de etiquetas de hash
Solo el contenido entre la primera llave de apertura ({) y la siguiente primera llave de cierre (}) es hash.
Por ejemplo:
- En las claves {user1000}.following y {user1000}.followers solo hay un par de llaves. user1000 se va a hash.
- En la clave foo{}{bar}, no hay contenido entre la primera { y la primera }. Toda la clave foo{}{bar} será hash como de costumbre.
- En la clave foo{{bar}}zap, {bar (el contenido entre la primera { y la primera }) es hash.
- En la clave foo{bar}{zap}, bar es hash porque está entre el primer par de { y }.
Ejemplo de etiqueta de hash
Cuando se realiza la siguiente operación:
EVAL "redis.call('set',KEYS[1],ARGV[1]) redis.call('set',KEYS[2],ARGV[2])" 2 key1 key2 value1 value2
Se muestra el siguiente error:
ERR 'key1' y 'key2' no están en la misma ranura
Puede usar una etiqueta de hash para resolver este problema:
EVAL "redis.call('set',KEYS[1],ARGV[1]) redis.call('set',KEYS[2],ARGV[2])" 2 {user}key1 {user}key2 value1 value2
Uso de Redis Preguntas frecuentes
- ¿Qué es la memoria reservada? ¿Cómo configuro la memoria reservada?
- ¿Qué son las cantidades de partición y de réplicas?
- ¿Por qué el uso de CPU de una instancia de DCS Redis es 100%?
- ¿Puedo cambiar la VPC y la subred de una instancia de DCS Redis?
- ¿Por qué no se pueden configurar los grupos de seguridad para las instancias de edición básica de DCS Redis 4.0/5.0/6.0?
- ¿Las instancias de DCS Redis limitan el tamaño de una clave o de un valor?
- ¿Puedo obtener las direcciones de los nodos en una instancia de DCS Redis de clúster?
- ¿Por qué la memoria disponible es más pequeña que el tamaño de caché de instancia?
- ¿DCS for Redis admite la separación de lectura/escritura?
- ¿DCS for Redis soporta multi-BD?
- ¿Cómo sé si una instancia es de BD única o de BD múltiples?
- ¿DCS for Redis admite Clúster Redis?
- ¿Qué es Sentinel?
- ¿DCS for Redis es compatible con Sentinels?
- ¿Cuál es la política predeterminada de desalojo de datos?
- ¿Qué debo hacer si ocurre un error en redis_exporter?
- ¿Cómo puedo proteger mis instancias de DCS Redis?
- ¿Por qué las instancias de Clúster Proxy de DCS Redis 3.0 no soportan el bloqueo distribuido de Redisson?
- ¿Puedo personalizar o cambiar el puerto para acceder a una instancia de DCS?
- ¿Puedo modificar las direcciones de conexión para acceder a una instancia de DCS?
- ¿Por qué no puedo eliminar una instancia?
- ¿DCS admite el despliegue entre las AZ?
- ¿Por qué se necesita mucho tiempo para iniciar una instancia de clúster de DCS?
- ¿DCS for Redis proporciona software de gestión de backend?
- ¿Por qué se utiliza la memoria de una instancia de DCS Redis por pocas claves?
- ¿Puedo recuperar datos eliminados de una instancia de DCS?
- ¿DCS for Redis admite la transmisión cifrada de SSL?
- ¿Cómo puedo habilitar o deshabilitar SSL para el acceso público a una instancia de DCS Redis 3.0?
- ¿Por qué la memoria disponible de las instancias de DCS no utilizadas es menor que la memoria total y por qué el uso de la memoria de las instancias DCS no utilizadas es mayor que cero?
- ¿Cómo calculo el uso de la memoria de Redis?
- La capacidad y el rendimiento de la instancia de Clúster Redis están todavía bajos, ¿por qué se sobrecarga la capacidad o el rendimiento de una partición?
- ¿DCS admite los complementos, extensiones o módulos externos?
- ¿Por qué desaparece una clave en Redis?
- ¿Por qué ocurre un error de OOM durante una conexión de Redis?
- ¿Qué clientes puedo utilizar para Clúster Redis en diferentes lenguajes de programación?
- ¿Por qué necesito configurar el tiempo de espera para Clúster Redis?
- ¿Por qué veo un error de tiempo de espera al leer datos de Redis?
- ¿Cuáles son las limitaciones en el despliegue de multi-BD en una instancia de Clúster Proxy?
- ¿Puedo cambiar la AZ de una instancia?
- Explicación y uso de etiquetas de hash
- ¿Se conservarán los datos almacenados en caché después de reiniciar una instancia?
- ¿Cómo puedo comprar una instancia de multi-BD de Clúster Proxy?
- ¿Por qué se congela una instancia?
Comentarios
¿Le pareció útil esta página?
Deje algún comentariomore