Manipolazione interi di Redis
Il tipo di stringa è il tipo di dati più fondamentale che Redis offre. Le stringhe Redis sono in grado di archiviare testi, oggetti JSON serializzati, immagini, audio e persino valori numerici. In questa guida, ci concentreremo sui valori numerici e sulla manipolazione dei numeri 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 numero intero, Redis può interpretare i valori dei numeri come interi firmati a 64 bit Base-10.
La manipolazione dei numeri è una caratteristica estremamente utile da avere in qualsiasi database. Redis offre diverse operazioni utili per lavorare su tipi interi come incr, decomposizione, incrby, ecc. In questa guida, il comando decano che opera su tipi interi è spiegato in dettaglio.
Il comando dec
Il comando decano viene introdotto per decrescere un valore numerico che viene memorizzato a una determinata chiave da uno. Funziona solo su valori di stringa che possono essere rappresentati come intero BASE-10 a 64 bit. Il comando decano elimina un errore per valori non stringa o valori di stringa che non possono essere rappresentati come numeri interi.
Quanto segue è la sintassi del comando dec:
Tasto REC
Chiave: La chiave che contiene il valore della stringa.
Il comando dec. Restituisce il numero intero firmato risultante dopo l'operazione di decremento. Se la chiave specificata non esiste, il comando imposta il valore su 0 e quindi diminuisce di uno. Inoltre, viene lanciato un errore quando il valore è una non corda o non può essere rappresentato come un numero intero firmato a 64 bit. Questo comando opera sulla complessità del tempo costante (O (1)) che è estremamente veloce.
Caso d'uso - Decremento della salute dei giocatori in un gioco online
Supponiamo che un gioco online in cui la salute di ogni giocatore è incrementata da uno quando viene rivelato un pacchetto medi. Allo stesso modo, la salute diminuisce di uno se il giocatore cade o viene colpito da un altro giocatore.
Il candidato ideale per conservare la salute di un giocatore è un tipo di stringa Redis in cui possiamo archiviare la salute come intero. Creiamo una chiave Salute: PlayerId: 1 e imposta il suo valore su 10. Possiamo usare il comando set come segue:
Imposta salute: PlayerId: 1 10
Possiamo usare il comando GET per verificare il valore memorizzato Salute: PlayerId: 1.
Ottieni salute: PlayerId: 1
Diciamo che il giocatore con l'ID 1 viene colpito e la salute dovrebbe essere ridotta di uno. Il comando decieto può essere usato come segue:
RECREB SALUTE: PlayerId: 1
Come previsto, il comando Decring stampa il valore aggiornato dopo l'operazione di decremento come mostrato nella figura seguente:
Inoltre, possiamo ispezionare il valore memorizzato nella chiave Salute: PlayerId: 1 Con il comando GET.
Ottieni salute: PlayerId: 1
Come previsto, il valore è diminuito di uno.
Anche l'operatore decomprimente è valido con numeri negativi. Archiviamo un nuovo valore numerico negativo alla chiave negativo: valore1.
Imposta negativo: valore1 -3
Possiamo ispezionare il valore usando il comando GET come segue:
Ottieni negativo: valore1
Il comando seguente mostra come viene utilizzato il comando dec negativo: valore1:
decrec negativo: valore1
Il comando dec. Sui valori non interi
Esistono alcuni casi di bordo quando proviamo a utilizzare il comando decano su una chiave Redis che contiene un tipo di dati non stringa o una stringa che non può essere rappresentata come un numero intero. Il comando decano emette un errore in quei casi come mostrato nell'esempio seguente:
Imposta NotanIntergerval Hello
Il "ciao" è un testo che non può essere convertito in un numero intero firmato. Quindi, il comando decano un errore se lo chiamiamo contro questa chiave.
decrescono notanintergerval
Il comando dec. Su chiavi inesistenti
In alcuni casi, è possibile chiamare il comando dec. Su una chiave che non esiste nel Redis Data Store. Quindi, il comando crea la chiave specificata e imposta il suo valore su intero 0. Allo stesso tempo, il valore è diminuito di uno.
decrescono key inesistente
Come previsto, l'output è -1.
Nel complesso, il comando declimatura è molto utile per implementare i contatori nelle applicazioni a bassa latenza.
Conclusione
In sintesi, DECRES è uno dei comandi che operano su valori numerici che sono archiviati in una determinata chiave Redis. Redis non supporta un tipo di dati interi 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 intero firmato a 64 bit, il comando dec. Può essere usato per decrescere il suo valore. Ancora più importante, opera con costante complessità del tempo. Inoltre, il comando declimatura è ampiamente utilizzato per implementare i contatori.