Sobes.tech
Junior — Middle

Máte skúsenosti s implementáciou transakcií v Redis?

sobes.tech AI

Odpoveď od AI

V Redis sú transakcie implementované pomocou príkazov MULTI, EXEC, DISCARD a WATCH. Umožňujú skupinu viacerých príkazov v atomickej operácii.

  • MULTI začína transakciu, po ktorej sú všetky príkazy zaradené do frontu.
  • EXEC vykoná všetky príkazy vo fronte atomicky.
  • DISCARD zruší transakciu.
  • WATCH umožňuje sledovať kľúče a zrušiť transakciu, ak sa zmenia (pre implementáciu optimistického zámku).

Príklad v Jave s použitím 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) {
        // transakcia bola zrušená kvôli zmene kľúča
    }
}

Týmto spôsobom Redis zabezpečuje sekvenčné a atomické vykonanie sady príkazov, ale nepodporuje úplné ACID transakcie ako v relačných databázach.