Junior — Middle
101
¿Tiene experiencia en la implementación de transacciones en Redis?
Empresas donde se preguntó
Respuesta de la IA
sobes.tech AI
En Redis, las transacciones se implementan mediante los comandos MULTI, EXEC, DISCARD y WATCH. Permiten agrupar varias comandos en una operación atómica.
MULTIinicia la transacción, después de lo cual todos los comandos se colocan en la cola.EXECejecuta todos los comandos en la cola de forma atómica.DISCARDcancela la transacción.WATCHpermite monitorear las claves y cancelar la transacción si estas cambian (para implementar bloqueo optimista).
Ejemplo en Java usando Jedis:
try (Jedis jedis = new Jedis("localhost")) {
jedis.watch("key1");
Transaction t = jedis.multi();
t.set("key1", "value1");
t.incr("counter");
List<Object> results = t.exec();
if (results == null) {
// La transacción fue cancelada debido a un cambio en la clave
}
}
De esta forma, las transacciones en Redis garantizan la ejecución secuencial y atómica de un conjunto de comandos, pero no soportan transacciones ACID completas como en bases de datos relacionales.