Type de données de base Redis (hachage de hachage)
- hacher
-
- Type de stockage
- Avantages et inconvénients avec String
- Commandes d'opération courantes
-
- hset: valeur définie
- hget: obtenir la valeur
- hmset: définir plusieurs valeurs
- hmget: obtenir plusieurs valeurs
- hkeys: récupère toutes les valeurs clés du hachage
- hvals: récupère toutes les valeurs de valeur de la clé
- hgetall: Obtenez toutes les valeurs de champ et de valeur de la clé
- hdel: supprimez le champ spécifié dans la clé
- hlen: récupère le nombre de champs contenus dans le hachage
- hexists: détermine si le hachage existe
- hincrby: la valeur entière dans le hachage augmente
- hincrbyfloat: augmentation du nombre à virgule flottante dans le hachage
- hsetnx
- hstrlen: obtient la longueur de chaîne de la valeur du champ spécifié par hachage
hacher
Type de stockage
Stockez plusieurs paires clé-valeur non ordonnées, la quantité de stockage maximale est de 2 ^ 32-1 (environ 4 milliards), la valeur ne peut être qu'une chaîne et les autres types ne peuvent pas être imbriqués
Avantages et inconvénients avec String
- avantage
- Rassemblez toutes les valeurs pertinentes en une seule clé pour économiser de l'espace mémoire
- Utilisez une seule clé pour réduire les conflits de clés
- Lorsque vous avez besoin d'obtenir des valeurs par lots, vous n'avez besoin que d'une seule commande pour réduire la consommation de mémoire / E / S / CPU
- Désavantage
- Le champ ne peut pas définir l'heure d'expiration séparément
- Il faut tenir compte de la distribution du volume de données (lorsqu'il y a beaucoup de champs, il ne peut pas être distribué à plusieurs nœuds)
Commandes d'opération courantes
hset: valeur définie
-
commander
HSET key field value
-
La description
Définissez la valeur du champ spécifié dans le jeu de hachage spécifié par key.
Si le jeu de hachage spécifié par la clé n'existe pas, un nouveau jeu de hachage sera créé et associé à la clé.
Si le champ existe dans le jeu de hachage, il sera écrasé.
-
valeur de retour
- 1-si le champ est un nouveau champ
- 0-Si le champ existait à l'origine dans la carte
-
Exemple
redis> HSET myhash field1 "Hello" (integer) 1 redis> HGET myhash field1 "Hello" redis>
hget: obtenir la valeur
-
commander
HGET key field
-
La description
Renvoie la valeur associée au champ dans le jeu de hachage spécifié par clé
-
valeur de retour
La valeur associée à ce champ. Lorsque le champ n'existe pas ou que la clé n'existe pas, nil est renvoyé.
-
Exemple
redis> HSET myhash field1 "foo" (integer) 1 redis> HGET myhash field1 "foo" redis> HGET myhash field2 (nil) redis>
hmset: définir plusieurs valeurs
-
commander
HMSET key field value [field value ...]
-
La description
Définissez la
key
valeur de la concentration spécifiée des hachages de champ spécifiés. Cette commande réécrira tous les champs qui existent dans le jeu de hachage. Si lekey
jeu de hachage spécifié n'existe pas, créez un nouveau jeu de hachage et le jeu de hachagekey
associé -
Exemple
redis> HMSET myhash field1 "Hello" field2 "World" OK redis> HGET myhash field1 "Hello" redis> HGET myhash field2 "World" redis>
hmget: obtenir plusieurs valeurs
-
commander
HMGET key field [field ...]
-
La description
Renvoie la
key
valeur de la concentration spécifiée des hachages de champ spécifiés.Pour chaque champ focalisé sur le hachage n'existe pas, la
nil
valeur de retour . Parce qu'elles n'existent pas, les clés sont considérées comme un ensemble de hachage vide pour unekey
exécution inexistanteHMGET
qui renverra contient uniquement unenil
liste de valeurs -
valeur de retour
Contient une liste des champs donnés et leurs valeurs, et conserve le même ordre que la demande.
-
Exemple
redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HMGET myhash field1 field2 nofield 1) "Hello" 2) "World" 3) (nil) redis>
hkeys: récupère toutes les valeurs clés du hachage
-
commander
HKEYS key
-
La description
Renvoie les noms de tous les champs du jeu de hachage spécifié par clé.
-
valeur de retour
La liste des champs dans le jeu de hachage, une liste vide est renvoyée lorsque le jeu de hachage spécifié par clé n'existe pas.
-
Exemple
redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HKEYS myhash 1) "field1" 2) "field2" redis>
hvals: récupère toutes les valeurs de valeur de la clé
-
commander
HVALS key
-
La description
Renvoie les valeurs de tous les champs du jeu de hachage spécifié par key.
-
valeur de retour
Liste de valeurs du jeu de hachage. Lorsque le jeu de hachage spécifié par key n'existe pas, une liste vide est renvoyée.
-
Exemple
redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HVALS myhash 1) "Hello" 2) "World" redis>
hgetall: Obtenez toutes les valeurs de champ et de valeur de la clé
-
commander
HGETALL key
-
La description
Renvoie tous les champs et valeurs du jeu de hachage spécifié par key. Dans la valeur de retour, le suivant de chaque nom de champ est sa valeur, donc la longueur de la valeur de retour est deux fois la taille de l'ensemble de hachage
-
valeur de retour
Une liste de champs et de valeurs dans le jeu de hachage. Lorsque le jeu de hachage spécifié par key n'existe pas, une liste vide est renvoyée.
-
Exemple
redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HGETALL myhash 1) "field1" 2) "Hello" 3) "field2" 4) "World" redis>
hdel: supprimez le champ spécifié dans la clé
-
commander
HDEL key field [field ...]
-
La description
Supprimez le domaine spécifié de l'ensemble de hachage spécifié par clé. Les domaines qui n'existent pas dans le jeu de hachage seront ignorés.
Si le jeu de hachage spécifié par key n'existe pas, il sera considéré comme un jeu de hachage vide et la commande renverra 0.
-
valeur de retour
Renvoie le nombre de domaines supprimés avec succès de l'ensemble de hachage, à l'exclusion des domaines signalés mais inexistants
-
Exemple
redis> HSET myhash field1 "foo" (integer) 1 redis> HDEL myhash field1 (integer) 1 redis> HDEL myhash field2 (integer) 0 redis>
hlen: récupère le nombre de champs contenus dans le hachage
-
commander
HLEN key
-
La description
Renvoie
key
le nombre de champs inclus dans le jeu de hachage spécifié. -
valeur de retour
Le nombre de champs dans le hachage, égal à
key
0 si le jeu de hachage spécifié n'existe pas -
Exemple
redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HLEN myhash (integer) 2 redis>
hexists: détermine si le hachage existe
-
commander
HEXISTS key field
-
La description
Renvoie si le champ existe dans le hachage
-
valeur de retour
- 1 --hash contient le champ.
- 0 --hash ne contient pas le champ ou la clé n'existe pas.
-
Exemple
redis> HSET myhash field1 "foo" (integer) 1 redis> HEXISTS myhash field1 (integer) 1 redis> HEXISTS myhash field2 (integer) 0 redis>
hincrby: la valeur entière dans le hachage augmente
-
commander
HINCRBY key field increment
-
La description
Augmentez
key
les champs numériques spécifiés centralisés de hachage spécifiés. S'ilkey
n'existe pas, créez un nouveau jeu de hachage et avec l'key
association. Si le champ n'existe pas, la valeur du champ est mise à 0 avant que l'opération ne soit effectuéeHINCRBY
La plage de valeurs prises en charge est limitée aux entiers signés 64 bits -
valeur de retour
La valeur de ce champ après l'exécution de l'opération à valeur ajoutée.
-
Exemple
redis> HSET myhash field 5 (integer) 1 redis> HINCRBY myhash field 1 (integer) 6 redis> HINCRBY myhash field -1 (integer) 5 redis> HINCRBY myhash field -10 (integer) -5 redis>
hincrbyfloat: augmentation du nombre à virgule flottante dans le hachage
-
commander
HINCRBYFLOAT key field increment
-
La description
Effectuez un ajout de type float pour la valeur de champ de
key
hachage spécifiée . S'il n'existe pas, définissez-le sur 0 avant d'effectuer l'opération. Si l'une des situations suivantes se produit, une erreur est renvoyée:field
increment
field
field
La valeur contient le mauvais type (pas une chaîne).- Actuellement
field
ouincrement
ne peut pas être analysé en tant que type float.
-
valeur de retour
field
Mise en œuvre de laincrement
valeur ajoutée -
Exemple
redis> HSET mykey field 10.50 (integer) 1 redis> HINCRBYFLOAT mykey field 0.1 "10.6" redis> HSET mykey field 5.0e3 (integer) 0 redis> HINCRBYFLOAT mykey field 2.0e2 "5200" redis>
hsetnx
-
commander
HSETNX key field value
-
La description
Uniquement
key
lorsque le champ spécifié de concentration de hachage spécifié n'existe pas, définition de la valeur du champ. Si lekey
jeu de hachage spécifié n'existe pas, créez un nouveau jeu de hachage et avec l'key
association. Si le champ existe déjà, cette opération n'a aucun effet. -
valeur de retour
- 1-Si le champ est un nouveau champ et a été attribué avec succès
- 0-Si le champ existe déjà dans le jeu de hachage, aucune opération n'est effectuée
-
Exemple
redis> HSETNX myhash field "Hello" (integer) 1 redis> HSETNX myhash field "World" (integer) 0 redis> HGET myhash field "Hello" redis>
hstrlen: obtient la longueur de chaîne de la valeur du champ spécifié par hachage
-
commander
HSTRLEN key field
-
valeur de retour
Renvoie la longueur de chaîne de la valeur du champ spécifié par hachage. Si le hachage ou le champ n'existe pas, renvoie 0.
-
Exemple
redis> HMSET myhash f1 HelloWorld f2 99 f3 -256 OK redis> HSTRLEN myhash f1 (integer) 10 redis> HSTRLEN myhash f2 (integer) 2 redis> HSTRLEN myhash f3 (integer) 4 redis>