ritorno DECR

Ritorno Decr



Manipolazione di numeri interi Redis

Il tipo di stringa è il tipo di dati più fondamentale offerto da Redis. Le stringhe Redis sono in grado di memorizzare testi, oggetti JSON serializzati, immagini, audio e persino valori numerici. In questa guida ci concentreremo sui valori numerici e sulla manipolazione degli interi. Redis non supporta i tipi di dati interi separati per contenere i dati numerici. Se una chiave Redis contiene una stringa che può essere rappresentata come un intero, Redis può interpretare i valori numerici come interi con segno a 64 bit in base 10.


La manipolazione dei numeri è una funzionalità estremamente utile da avere in qualsiasi database. Redis offre diverse operazioni utili per lavorare sui tipi interi come INCR, DECR, INCRBY, ecc. In questa guida viene spiegato in dettaglio il comando DECR che opera sui tipi interi.







Il comando DECR

Il comando DECR viene introdotto per decrementare di uno un valore numerico memorizzato in una determinata chiave. Funziona solo su valori stringa che possono essere rappresentati come un intero a 64 bit in base 10. Il comando DECR genera un errore per valori non stringa o valori stringa che non possono essere rappresentati come numeri interi.



Quella che segue è la sintassi del comando DECR:



Tasto DECR


Chiave: La chiave che contiene il valore della stringa.





Il comando DECR restituisce l'intero con segno risultante dopo l'operazione di decremento. Se la chiave specificata non esiste, il comando imposta il valore su 0 e quindi lo decrementa di uno. Inoltre, viene generato un errore quando il valore non è una stringa o non può essere rappresentato come un intero con segno a 64 bit. Questo comando opera su complessità a tempo costante (O(1)) che è estremamente veloce.

Caso d'uso: riduce la salute del giocatore in un gioco online

Supponiamo di un gioco online in cui la salute di ogni giocatore viene incrementata di uno quando viene rivelato un medipack. Allo stesso modo, la salute diminuisce di uno se il giocatore cade o viene colpito da un altro giocatore.



Il candidato ideale per memorizzare la salute di un giocatore è un tipo di stringa Redis in cui possiamo memorizzare la salute come numero intero. Creiamo una chiave salute:ID giocatore:1 e impostarne il valore su 10. Possiamo usare il comando SET come segue:

impostare salute:playerID: 1 10



Possiamo usare il comando GET per verificare il valore memorizzato in salute:ID giocatore:1.

ottenere salute:playerID: 1



Diciamo che il giocatore con l'ID 1 viene colpito e la salute dovrebbe essere ridotta di uno. Il comando DECR può essere utilizzato come segue:

decr salute:playerID: 1


Come previsto, il comando DECR stampa il valore aggiornato dopo l'operazione di decremento come mostrato nella figura seguente:


Inoltre, possiamo ispezionare il valore memorizzato in chiave salute:ID giocatore:1 con il comando GET.

ottenere salute:playerID: 1



Come previsto, il valore è diminuito di uno.

L'operatore DECR è valido anche con numeri negativi. Memorizziamo un nuovo valore numerico negativo sulla chiave negativo: valore1 .

impostare negativo: valore1 -3


Possiamo ispezionare il valore usando il comando GET come segue:

ottenere negativo:valore1



Il comando seguente mostra come viene utilizzato il comando DECR sulla chiave negativo:valore1:

decr negativo:valore1


Il comando DECR su valori non interi

Ci sono alcuni casi limite quando proviamo a usare il comando DECR su una chiave Redis che contiene un tipo di dati non stringa o una stringa che non può essere rappresentata come un intero. Il comando DECR genera un errore in questi casi, come mostrato nell'esempio seguente:

impostare notAnIntergerVal Ciao


Il 'Ciao' è un testo che non può essere convertito in un numero intero con segno. Quindi, il comando DECR genera un errore se lo chiamiamo contro questa chiave.

decr notAnIntergerVal


Il comando DECR su chiavi inesistenti

In alcuni casi, potresti chiamare il comando DECR su una chiave che non esiste nell'archivio dati Redis. Quindi, il comando crea la chiave specificata e imposta il suo valore su intero 0. Allo stesso tempo, il valore viene diminuito di uno.

decr chiave inesistente


Come previsto, l'output è -1.


Nel complesso, il comando DECR è molto utile per implementare i contatori in applicazioni a bassa latenza.

Conclusione

In sintesi, DECR è uno dei comandi che operano su valori numerici memorizzati in un determinato tasto Redis. Redis non supporta un tipo di dati intero separato. Quindi, il tipo di stringa viene utilizzato anche per contenere i valori numerici. Come esaminato, se il valore della stringa può essere rappresentato come un intero con segno a 64 bit, il comando DECR può essere utilizzato per decrementarne il valore. Soprattutto, opera su una complessità temporale costante. Inoltre, il comando DECR è ampiamente utilizzato per implementare i contatori.