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.
MULTIelindítja a tranzakciót, ezután minden parancs sorba kerül.EXECvégrehajtja az összes parancsot atomikusan.DISCARDvisszavonja a tranzakciót.WATCHlehető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.