Sobes.tech
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.

  • MULTI inicia a transação, após o que todos os comandos são colocados na fila.
  • EXEC executa todos os comandos na fila de forma atómica.
  • DISCARD cancela a transação.
  • WATCH permite 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.