total the script query number hkeys gives example docu commands bytes allocated transactions redis pipelining

transactions - the - redis lua script example



tubería vs transacción en redis (1)

La canalización es principalmente una optimización de la red. Básicamente, significa que el cliente almacena un montón de comandos y los envía al servidor de una sola vez. No se garantiza que los comandos se ejecuten en una transacción. El beneficio aquí es el ahorro de tiempo de ida y vuelta de la red para cada comando.

Redis es un solo hilo por lo que un comando individual siempre es atómico, pero dos comandos dados de diferentes clientes pueden ejecutarse en secuencia, alternando entre ellos, por ejemplo.

Sin embargo, Multi / exec garantiza que no haya otros clientes ejecutando comandos entre los comandos en la secuencia multi / exec.

Cuando usamos una transacción en Redis, básicamente canaliza todos los comandos dentro de la transacción. Y cuando se ejecuta EXEC, todos los comandos se ejecutan juntos, manteniendo así la atomicidad de los comandos múltiples.

¿No es esto lo mismo que la canalización?

¿En qué se diferencia la canalización y la transacción? Además, ¿por qué no es suficiente la naturaleza de un único hilo de Redis? ¿Por qué necesitamos explícitamente la canalización / transacción?