Redis : types de données
Chaque clé contient une valeur d’un type. Convention de nommage : des segments séparés par : (utilisateur:42:profil, cache:page:accueil).
Chaînes (string)
Section intitulée « Chaînes (string) »SET nom "Alice"GET nomSET compteur 10INCR compteur # 11INCRBY compteur 5 # 16APPEND nom " Martin"STRLEN nomSET verrou 1 NX EX 30 # écrit seulement si absente, expire en 30 sLes chaînes servent aux valeurs simples, aux compteurs, aux jetons et aux caches (valeur JSON sérialisée).
Un objet : champs et valeurs.
HSET utilisateur:42 nom "Alice" email "alice@exemple.com" age 30HGET utilisateur:42 nomHGETALL utilisateur:42HINCRBY utilisateur:42 age 1HDEL utilisateur:42 emailHEXISTS utilisateur:42 nomSéquences ordonnées (insertion aux deux extrémités) : files et piles.
RPUSH taches "a" "b" "c"LPUSH taches "z"LRANGE taches 0 -1 # toutLPOP tachesRPOP tachesLLEN tachesBLPOP taches 5 # attend jusqu'à 5 s un élémentEnsembles (set)
Section intitulée « Ensembles (set) »Éléments uniques, sans ordre.
SADD tags "linux" "redis" "docker"SMEMBERS tagsSISMEMBER tags "linux"SREM tags "docker"SCARD tagsSINTER tags autres_tags # intersectionSUNION tags autres_tagsEnsembles ordonnés (sorted set)
Section intitulée « Ensembles ordonnés (sorted set) »Éléments uniques classés par un score : classements.
ZADD scores 100 "alice" 85 "bob" 120 "chloe"ZRANGE scores 0 -1 WITHSCORES # du plus petit au plus grandZRANGE scores 0 2 REV WITHSCORES # les 3 meilleursZSCORE scores "alice"ZINCRBY scores 10 "bob"ZRANK scores "alice"ZREM scores "bob"Flux (stream)
Section intitulée « Flux (stream) »Journal d’événements en ajout seul.
XADD evenements * type connexion utilisateur 42XLEN evenementsXRANGE evenements - +XREAD COUNT 10 STREAMS evenements 0Bitmaps et HyperLogLog
Section intitulée « Bitmaps et HyperLogLog »SETBIT visites:2026-01-01 42 1 # l'utilisateur 42 a visitéGETBIT visites:2026-01-01 42BITCOUNT visites:2026-01-01PFADD visiteurs "a" "b" "c" # comptage approximatif d'éléments uniquesPFCOUNT visiteursPublication / abonnement
Section intitulée « Publication / abonnement »Dans une première console :
SUBSCRIBE canalDans une seconde :
PUBLISH canal "bonjour"Les messages ne sont pas conservés : un abonné absent les perd (pour de la persistance, utiliser un flux).
Choisir le type
Section intitulée « Choisir le type »| Besoin | Type |
|---|---|
| Cache, jeton, compteur | Chaîne |
| Objet avec champs | Hash |
| File de tâches | Liste |
| Éléments uniques, étiquettes | Ensemble |
| Classement | Ensemble ordonné |
| Journal d’événements | Flux |
Dépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
WRONGTYPE Operation against a key holding the wrong kind of value |
Commande d’un autre type : TYPE clé |
value is not an integer or out of range |
INCR sur une valeur non numérique |
| Clé de très grande taille | redis-cli --bigkeys, découper en plusieurs clés |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »Ces types et commandes sont disponibles sur Redis 7.0 et 8.0 ; Redis 8 ajoute des types intégrés supplémentaires (JSON, vecteurs, séries temporelles) non traités ici.