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.
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 :
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.
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 :
La commande suivante montre comment la commande DECR est utilisée sur la clé 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é.
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.