Red de conocimiento informático - Problemas con los teléfonos móviles - Redis usa hash para implementar bloqueos de lectura y escritura

Redis usa hash para implementar bloqueos de lectura y escritura

Hash implementa bloqueos de lectura y escritura.

1. Para obtener un bloqueo, el cliente utiliza el comando HSET para establecer un campo en un hash. El nombre del campo es el nombre del bloqueo y el valor del campo es un UUID generado aleatoriamente. HSET devuelve que el cliente adquirió correctamente el bloqueo; HSET devuelve 0, lo que indica que el campo ya existe y el cliente vuelve a intentarlo y espera.

2. Liberar un bloqueo. El cliente utiliza el comando HGET para obtener un campo en un hash. El nombre del campo es el nombre del bloqueo. Compruebe si el valor del campo es el mismo que el UUID generado anteriormente. . El cliente es propietario del bloqueo y el comando HDEL elimina el campo para liberar el bloqueo; el cliente ha perdido el bloqueo y no elimina el campo.

3. Para evitar un punto muerto, después de que el cliente adquiere el bloqueo, el hash establece un tiempo de vencimiento. Puede usar el comando EXPIRE para configurar el tiempo de vencimiento y usar las opciones NX y PX en el comando HSET para configurar tanto el campo como el tiempo de vencimiento. El tiempo de vencimiento se establece adecuadamente según la lógica empresarial. No puede ser demasiado corto, lo que provocará que el bloqueo se libere accidentalmente, y no puede ser demasiado largo, lo que provocará que el bloqueo esté ocupado durante demasiado tiempo.

Redis es una estructura de almacenamiento de datos en memoria de código abierto, que se utiliza como base de datos, caché o cola de mensajes. Redis admite múltiples tipos de datos, entre los cuales hash es una estructura de datos que puede almacenar pares clave-valor.