Sobes.tech
Junior — Middle

Van tapasztalata Redis tranzakciók végrehajtásában?

sobes.tech MI

Válasz az MI-től

A Redis tranzakciók a MULTI, EXEC, DISCARD és WATCH parancsok segítségével valósíthatók meg. Ezek lehetővé teszik több parancs csoportosítását atomikus műveletként.

  • MULTI elindítja a tranzakciót, ezután minden parancs sorba kerül.
  • EXEC végrehajtja az összes parancsot atomikusan.
  • DISCARD visszavonja a tranzakciót.
  • WATCH lehetővé teszi a kulcsok figyelését és a tranzakció visszavonását, ha azok megváltoznak (az optimista zárolás megvalósításához).

Java példában Jedis használatával:

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 tranzakciót a kulcs változása miatt megszakították
    }
}

Így a Redis tranzakciók biztosítják egy parancsok sorozatos és atomikus végrehajtását, de nem támogatják a teljes ACID tranzakciókat, mint a relációs adatbázisok.