Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo manejar el error en la transacción de Redis

Cómo manejar el error en la transacción de Redis

Cuando falla la ejecución de un comando en una transacción de Redis, Redis no revertirá automáticamente la operación anterior, pero continuará ejecutando comandos posteriores. Si necesita revertir la operación anterior, existen dos métodos:

1. Utilice el comando WATCH: El comando WATCH escucha una o más claves si otros clientes modifican estas claves durante la ejecución de la transacción. , La transacción se cancelará y se devolverá un error. Puede colocar todos los comandos que pueden causar que la transacción falle en una transacción y usar el comando WATCH para escuchar estas claves antes de que se ejecute la transacción. Si la clave monitoreada por WATCH se modifica durante la ejecución de la transacción, Redis revertirá automáticamente la transacción. Por ejemplo:

WATCH tecla1 tecla2

MULTI

COMANDO1

COMANDO2

EJEC

Si otros clientes modifican la clave1 o la clave2 entre MULTI y EXEC, la transacción será abortada y se devolverá un error.

2. Utilice el comando DISCARD: el comando DISCARD descartará todas las operaciones en la transacción actual y volverá al estado anterior a la ejecución de la transacción. Si un comando falla durante la ejecución de la transacción, puede llamar manualmente al comando DISCARD para cancelar todas las operaciones de la transacción. Por ejemplo:

MULTI

COMMAND1

COMMAND2

EXEC

Si EXEC devuelve un error, ejecute

COMMAND2

EXEC

p>

DISCARD

Si después de EXEC, Redis devuelve un error

Tenga en cuenta que las transacciones de Redis no son estrictamente transacciones ACID por naturaleza. Al utilizar transacciones de Redis, debe comprender completamente las características de las transacciones de Redis y manejar las excepciones con cuidado.