Junior — Middle
Tem experiência na implementação de transações no Redis?
sobes.tech IA
Resposta da IA
No Redis, as transações são implementadas usando os comandos MULTI, EXEC, DISCARD e WATCH. Eles permitem agrupar várias comandos numa operação atómica.
MULTIinicia a transação, após o que todos os comandos são colocados na fila.EXECexecuta todos os comandos na fila de forma atómica.DISCARDcancela a transação.WATCHpermite monitorizar as chaves e cancelar a transação se estas forem alteradas (para implementar bloqueio otimista).
Exemplo em 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) {
// A transação foi cancelada devido a uma alteração na chave
}
}
Assim, as transações no Redis garantem a execução sequencial e atómica de um conjunto de comandos, mas não suportam transações ACID completas como em bases de dados relacionais.