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.
MULTIzačína transakciu, po ktorej sú všetky príkazy zaradené do frontu.EXECvykoná všetky príkazy vo fronte atomicky.DISCARDzruší transakciu.WATCHumožň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.