Una transazione di database si riferisce a una singola unità di lavoro composta da domande singole a più. Nei casi, un'operazione può essere classificata come transazione solo se ci sono modifiche al database.
Non ci occuperemo di questo, ma impareremo come usare il comando di orologio insieme alle transazioni Redis per questo.
Quali sono le transazioni?
In Redis, le transazioni sono costituite da quattro comandi principali: orologio, exec, scarto e multi.
Usando i comandi sopra, è possibile aprire un blocco e aggiungere più comandi tutti in una volta. Una volta completato, si esegue i comandi come una singola unità.
Affinché una transazione abbia successo, Redis garantisce questo:
Redis Crea transazione
Si crea un'unità di transazione utilizzando il comando multi. Il comando multi tornerà ok. Puoi andare avanti e aggiungere tutti i comandi di transazione uno dopo l'altro.
Invece di eseguire i comandi, Redis li metterà in inserzione fino a quando non li chiami.
Un esempio è come mostrato di seguito:
127.0.0.1: 6379> Multi
OK
Redis Esegui unità di transazione
Come accennato, Redis metterà in fila i comandi in un'unità di transazione fino a quando non li eseguirà manualmente.
Possiamo farlo usando il comando Exec. Questo dice a Redis di eseguire tutti i comandi in coda nell'ordine di inserimento.
Un utilizzo di esempio è come mostrato di seguito:
127.0.0.1: 6379> Imposta NewKey "100"
Messo in coda
127.0.0.1: 6379> Incr NewKey
Messo in coda
127.0.0.1: 6379> Ottieni NewKey
Messo in coda
127.0.0.1: 6379>
Noterai che ogni comando eseguito viene messo in coda. Un comando in coda è un comando che è programmato per l'esecuzione dopo che viene chiamato.
Per eseguirlo, chiama il dirigente come:
127.0.0.1: 6379> Exec
1) OK
2) (intero) 101
3) "101"
Ciò dovrebbe eseguire tutti i comandi e restituire i valori risultanti.
Redis Rimuovi la coda di comando
Supponiamo di voler pulire la coda di comando e sciacquare tutti i comandi pianificati? Per questo, puoi usare il comando scarto come mostrato:
127.0.0.1: 6379> Multi
OK
127.0.0.1: 6379> Imposta NewKey "100"
Messo in coda
127.0.0.1: 6379> Incr NewKey
Messo in coda
127.0.0.1: 6379> Ottieni NewKey
Messo in coda
127.0.0.1: 6379> scartare
OK
Dopo aver eseguito il comando scarto, Redis restituirà OK e chiuderà l'unità di transazione.
Redis Watch Command
Il comando orologio in Redis consente di implementare la funzione di controllo. I comandi di orologi accettano i tasti Redis come parametri e monitorali.
Se una delle chiavi specificate viene modificata prima che venga chiamato il comando Exec, Redis termina automaticamente la transazione e restituisce una risposta nulla.
Prendi l'esempio di seguito:
var = prendi mykey
var = var + 1
Imposta mykey $ var
Nell'esempio sopra, abbiamo un'operazione che aumenta il valore di una chiave di 1. Naturalmente, questo non è un problema se solo un singolo cliente esegue la suddetta operazione.
Tuttavia, se più client tentano di eseguire contemporaneamente l'operazione di cui sopra, si verifica una condizione di gara e restituisce un valore non valido.
Possiamo risolverlo guardando la chiave come mostrato:
Guarda MyKey
var = prendi mykey
var = var + 1
Multi
Imposta mykey $ var
Exec
Qui, se un client funziona e il valore della chiave viene modificato prima di eseguire la transazione, l'esecuzione non riesce.
Per rimuovere tutte le chiavi guardarne, utilizzare il comando di disaggregazione.
Conclusione
Questo articolo ha discusso utilizzando e lavorando con le transazioni in un database Redis. Controlla la documentazione per scoprire di più.
Grazie per aver letto!!