Types de données Redis
Redis prend principalement en charge les types de données suivants :
- string (string) :Unité de stockage de données de base, peut stocker des chaînes, des entiers ou des nombres à virgule flottante.
- hash (hash) :Une collection de paires clé-valeur pouvant stocker plusieurs champs.
- list (list) :Une liste simple qui peut stocker une série d'éléments de type chaîne.
- set (set) :Une collection non ordonnée qui peut stocker des éléments de type chaîne uniques.
- zset (sorted set: ordered set) :Semblable à un ensemble, mais chaque élément possède un score qui lui est associé.
- Bitmaps :Basé sur le type string, vous pouvez opérer sur chaque bit.
- HyperLogLogs :Utilisé pour les statistiques de cardinalité, il peut estimer le nombre d'éléments uniques dans un ensemble.
- Geospatial :Utilisé pour stocker des informations de localisation géographique.
- Publish/Subscribe (Pub/Sub) :Un modèle de communication de messages qui permet aux clients de s'abonner à des canaux de messages et de recevoir les messages publiés sur ces canaux.
- Streams :Utilisé pour les files d'attente de messages et le stockage de journaux, prend en charge la persistance des messages et l'ordre temporel.
- Modules :Redis prend en charge le chargement dynamique de modules pour étendre les fonctionnalités de Redis.
Chaîne (string)
Le type string est le type le plus élémentaire de Redis. Vous pouvez le considérer comme le même type que Memcached : une clé correspond à une valeur.
Le type string est compatible avec les données binaires. Cela signifie que les chaînes Redis peuvent contenir toutes sortes de données, comme des images JPEG ou des objets sérialisés.
Le type string est le type de données le plus élémentaire dans Redis. La taille maximale d'une valeur de type string est de 512MB.
Commandes courantes
SET key value: Définir la valeur de la clé.GET key: Obtenir la valeur de la clé.INCR key: Incrémenter la valeur de la clé de 1.DECR key: Décrémenter la valeur de la clé de 1.APPEND key value: Ajouter la valeur à la fin de la valeur de la clé.
Exemples
redis 127.0.0.1:6379> SET example "Example" OK redis 127.0.0.1:6379> GET example "Example"
Dans les exemples ci-dessus, nous avons utilisé la commandeSETetGETde Redis. La clé est example, et la valeur correspondante estExample。
Remarque :Une clé peut stocker jusqu'à 512MB.
Hachage (hash)
Un hash Redis est une collection de paires clé-valeur (clé=>valeur), similaire à une petite base de données NoSQL.
Un hash Redis est une table de correspondance de champs et de valeurs de type chaîne. Le hash est particulièrement adapté au stockage d'objets.
Chaque hash peut stocker jusqu'à 2^32 - 1 paires clé-valeur.
HSET key field value: Définir la valeur d'un champ dans la table de hachage.HGET key field: Obtenir la valeur d'un champ dans la table de hachage.HGETALL key: Obtenir tous les champs et valeurs dans la table de hachage.HDEL key field: Supprimer un ou plusieurs champs de la table de hachage.
Commandes courantes
Exemples
Exemple DELUtilisé pour supprimer la clé utilisée dans le test précédent, sinon une erreur se produira :(error) WRONGTYPE Operation against a key holding the wrong kind of value

redis 127.0.0.1:6379> DEL example redis 127.0.0.1:6379> HMSET example field1 "Hello" field2 "World" "OK" redis 127.0.0.1:6379> HGET example field1 "Hello" redis 127.0.0.1:6379> HGET example field2 "World"
Dans l'exemple, nous avons utilisé les commandes RedisHMSET, HGET,HMSETdéfinit deuxchamp=>valeurpaires. HGET obtient lavaleurcorrespondante duchamp correspondant。
Liste (list)
Les listes Redis sont des listes simples de chaînes, triées par ordre d'insertion. Vous pouvez ajouter un élément en tête (à gauche) ou en queue (à droite) de la liste.
Une liste peut stocker jusqu'à 2^32 - 1 éléments.
Commandes courantes
LPUSH key value: Insérer une valeur en tête de la liste.RPUSH key value: Insérer une valeur à la queue de la liste.LPOP key: Supprimer et récupérer le premier élément de la liste.RPOP key: Supprimer et récupérer le dernier élément de la liste.LRANGE key start stop: Récupérer les éléments de la liste dans un intervalle spécifié.
Exemples
redis 127.0.0.1:6379> DEL example redis 127.0.0.1:6379> lpush example redis (integer) 1 redis 127.0.0.1:6379> lpush example mongodb (integer) 2 redis 127.0.0.1:6379> lpush example rabbitmq (integer) 3 redis 127.0.0.1:6379> lrange example 0 10 1) "rabbitmq" 2) "mongodb" 3) "redis" redis 127.0.0.1:6379>
Ensemble (set)
L'ensemble Redis est une collection non ordonnée de type chaîne.
La collection est implémentée via une table de hachage, donc la complexité d'ajout, de suppression et de recherche est O(1).
Commandes courantes
SADD key value: Ajouter un ou plusieurs membres à l'ensemble.SREM key value: Supprimer un ou plusieurs membres de l'ensemble.SMEMBERS key: Retourner tous les membres de l'ensemble.SISMEMBER key value: Détermine si une valeur est membre de l'ensemble.
commande sadd
Ajoute un élément de type chaîne à l'ensemble correspondant à la clé. Renvoie 1 en cas de succès, et renvoie 0 si l'élément est déjà dans l'ensemble.
sadd key member
Exemples
redis 127.0.0.1:6379> DEL example redis 127.0.0.1:6379> sadd example redis (integer) 1 redis 127.0.0.1:6379> sadd example mongodb (integer) 1 redis 127.0.0.1:6379> sadd example rabbitmq (integer) 1 redis 127.0.0.1:6379> sadd example rabbitmq (integer) 0 redis 127.0.0.1:6379> smembers example 1) "redis" 2) "rabbitmq" 3) "mongodb"
Remarque :Dans l'exemple ci-dessus, rabbitmq a été ajouté deux fois, mais en raison de l'unicité des éléments dans un ensemble, la seconde insertion est ignorée.
Le nombre maximal de membres dans un ensemble est 232- 1 (4294967295, chaque ensemble peut stocker plus de 4 milliards de membres).
zset (ensemble trié : ensemble ordonné)
Redis zset, comme un ensemble, est aussi une collection d'éléments de type chaîne et n'autorise pas les membres en double.La différence est que chaque élément est associé à un score de type double. Redis utilise le score pour trier les membres de la collection du plus petit au plus grand.
Les membres d'un zset sont uniques, mais les scores peuvent être répétés.
Commandes courantes
ZADD key score value: Ajoute un ou plusieurs membres à l'ensemble trié, ou mets à jour le score d'un membre existant.ZRANGE key start stop [WITHSCORES]: Renvoie les membres dans un intervalle spécifié.ZREM key value: Supprime un ou plusieurs membres de l'ensemble trié.ZSCORE key value: Renvoie le score d'un membre dans l'ensemble trié.
commande zadd
Ajoute un élément à la collection ; si l'élément existe déjà dans la collection, met à jour son score correspondant.
zadd key score member
Exemples
redis 127.0.0.1:6379> DEL example redis 127.0.0.1:6379> zadd example 0 redis (integer) 1 redis 127.0.0.1:6379> zadd example 0 mongodb (integer) 1 redis 127.0.0.1:6379> zadd example 0 rabbitmq (integer) 1 redis 127.0.0.1:6379> zadd example 0 rabbitmq (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE example 0 1000 1) "mongodb" 2) "rabbitmq" 3) "redis"
Autres types de données avancés
HyperLogLog
- Une structure de données utilisée pour les algorithmes d'estimation de cardinalité.
- Souvent utilisé pour estimer le nombre approximatif de valeurs uniques.
Bitmaps
- Un tableau de bits qui peut effectuer des opérations bit à bit sur des chaînes.
- Souvent utilisé pour des opérations bit à bit telles que la mise en œuvre de filtres de Bloom.
Index géospatiaux
- Gère les données géospatiales, prend en charge l'indexation géospatiale et les requêtes par rayon.
- Type de données de journal, prend en charge les données de séries temporelles.
- Utilisé pour les files d'attente de messages et le traitement de données en temps réel.