retour DECR

Retour Decr



Manipulation d'entiers Redis

Le type de chaîne est le type de données le plus fondamental proposé par Redis. Les chaînes Redis sont capables de stocker des textes, des objets JSON sérialisés, des images, de l'audio et même des valeurs numériques. Dans ce guide, nous nous concentrerons sur les valeurs numériques et la manipulation des nombres entiers. Redis ne prend pas en charge les types de données entiers séparés pour contenir les données numériques. Si une clé Redis contient une chaîne qui peut être représentée sous forme d'entier, Redis peut interpréter les valeurs numériques comme des entiers signés en base 10 64 bits.


La manipulation des nombres est une fonctionnalité extrêmement utile à avoir dans n'importe quelle base de données. Redis propose plusieurs opérations utiles pour travailler sur les types entiers tels que INCR, DECR, INCRBY, etc. Dans ce guide, la commande DECR qui opère sur les types entiers est expliquée en détail.







La commande DECR

La commande DECR est introduite pour décrémenter une valeur numérique stockée sur une clé donnée de un. Cela ne fonctionne que sur les valeurs de chaîne qui peuvent être représentées sous la forme d'un entier 64 bits en base 10. La commande DECR renvoie une erreur pour les valeurs non-chaîne ou les valeurs chaîne qui ne peuvent pas être représentées sous forme d'entiers.



Voici la syntaxe de la commande DECR :



Touche DECR


Clé: La clé qui contient la valeur de la chaîne.





La commande DECR renvoie l'entier signé résultant après l'opération de décrémentation. Si la clé spécifiée n'existe pas, la commande définit la valeur sur 0, puis la décrémente de un. En outre, une erreur est générée lorsque la valeur n'est pas une chaîne ou ne peut pas être représentée sous la forme d'un entier signé 64 bits. Cette commande fonctionne sur une complexité en temps constant (O(1)) qui est extrêmement rapide.

Cas d'utilisation - Décrémenter la santé du joueur dans un jeu en ligne

Supposons un jeu en ligne où la santé de chaque joueur est augmentée de un lorsqu'un medi-pack est révélé. De même, la santé diminue de un si le joueur tombe ou est touché par un autre joueur.



Le candidat idéal pour stocker la santé d'un joueur est un type de chaîne Redis où nous pouvons stocker la santé sous forme d'entier. Créons une clé santé:ID joueur:1 et définissez sa valeur sur 10. Nous pouvons utiliser la commande SET comme suit :

Positionner santé :ID du joueur : 1 dix



Nous pouvons utiliser la commande GET pour vérifier la valeur stockée à santé :ID du joueur :1.

obtenir de la santé :ID de joueur : 1



Disons que le joueur avec l'ID 1 est touché et que la santé devrait être diminuée de un. La commande DECR peut être utilisée comme suit :

decr santé :ID de joueur : 1


Comme prévu, la commande DECR imprime la valeur mise à jour après l'opération de décrémentation, comme illustré dans la figure suivante :


De plus, nous pouvons inspecter la valeur stockée à la clé santé:ID joueur:1 avec la commande GET.

obtenir de la santé :ID de joueur : 1



Comme prévu, la valeur a diminué de un.

L'opérateur DECR est également valide avec les nombres négatifs. Stockons une nouvelle valeur numérique négative à la clé négatif : valeur1 .

Positionner négatif : valeur1 -3


Nous pouvons inspecter la valeur à l'aide de la commande GET comme suit :

obtenir négatif : valeur1



La commande suivante montre comment la commande DECR est utilisée sur la clé négatif :valeur1 :

décr négatif : valeur1


La commande DECR sur les valeurs non entières

Il existe des cas extrêmes lorsque nous essayons d'utiliser la commande DECR sur une clé Redis contenant un type de données non chaîne ou une chaîne qui ne peut pas être représentée sous forme d'entier. La commande DECR génère une erreur dans ces cas, comme illustré dans l'exemple suivant :

Positionner notAnIntergerVal Bonjour


Le 'Bonjour' est un texte qui ne peut pas être converti en entier signé. Ainsi, la commande DECR génère une erreur si nous l'appelons sur cette clé.

decr notAnIntergerVal


La commande DECR sur des clés inexistantes

Dans certains cas, vous pouvez appeler la commande DECR sur une clé qui n'existe pas dans le magasin de données Redis. Ainsi, la commande crée la clé spécifiée et définit sa valeur sur l'entier 0. En même temps, la valeur est diminuée de un.

decr clé non existante


Comme prévu, la sortie est -1.


Dans l'ensemble, la commande DECR est très utile pour implémenter les compteurs dans les applications à faible latence.

Conclusion

En résumé, DECR est l'une des commandes qui fonctionnent sur des valeurs numériques stockées sur une clé Redis donnée. Redis ne prend pas en charge un type de données entier séparé. Ainsi, le type de chaîne est également utilisé pour contenir les valeurs numériques. Comme examiné, si la valeur de chaîne peut être représentée sous la forme d'un entier signé 64 bits, la commande DECR peut être utilisée pour décrémenter sa valeur. Plus important encore, il fonctionne sur une complexité temporelle constante. De plus, la commande DECR est largement utilisée pour implémenter les compteurs.