Type de données de base Redis (hachage de 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

  1. 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
  2. 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 keyvaleur 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 le keyjeu de hachage spécifié n'existe pas, créez un nouveau jeu de hachage et le jeu de hachage keyassocié

  • 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 keyvaleur de la concentration spécifiée des hachages de champ spécifiés.

    Pour chaque champ focalisé sur le hachage n'existe pas, la nilvaleur de retour . Parce qu'elles n'existent pas, les clés sont considérées comme un ensemble de hachage vide pour une keyexécution inexistante HMGETqui renverra contient uniquement une nilliste 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 keyle nombre de champs inclus dans le jeu de hachage spécifié.

  • valeur de retour

    Le nombre de champs dans le hachage, égal à key0 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 keyles champs numériques spécifiés centralisés de hachage spécifiés. S'il keyn'existe pas, créez un nouveau jeu de hachage et avec l' keyassociation. Si le champ n'existe pas, la valeur du champ est mise à 0 avant que l'opération ne soit effectuée

    HINCRBY 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 keyhachage 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:fieldincrementfield

    • fieldLa valeur contient le mauvais type (pas une chaîne).
    • Actuellement fieldou incrementne peut pas être analysé en tant que type float.
  • valeur de retour

    fieldMise en œuvre de la incrementvaleur 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 keylorsque le champ spécifié de concentration de hachage spécifié n'existe pas, définition de la valeur du champ. Si le keyjeu de hachage spécifié n'existe pas, créez un nouveau jeu de hachage et avec l' keyassociation. 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> 
    

Je suppose que tu aimes

Origine blog.csdn.net/huangge1199/article/details/112319703
conseillé
Classement