Aller au contenu

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).

SET nom "Alice"
GET nom
SET compteur 10
INCR compteur # 11
INCRBY compteur 5 # 16
APPEND nom " Martin"
STRLEN nom
SET verrou 1 NX EX 30 # écrit seulement si absente, expire en 30 s

Les 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 30
HGET utilisateur:42 nom
HGETALL utilisateur:42
HINCRBY utilisateur:42 age 1
HDEL utilisateur:42 email
HEXISTS utilisateur:42 nom

Séquences ordonnées (insertion aux deux extrémités) : files et piles.

RPUSH taches "a" "b" "c"
LPUSH taches "z"
LRANGE taches 0 -1 # tout
LPOP taches
RPOP taches
LLEN taches
BLPOP taches 5 # attend jusqu'à 5 s un élément

Éléments uniques, sans ordre.

SADD tags "linux" "redis" "docker"
SMEMBERS tags
SISMEMBER tags "linux"
SREM tags "docker"
SCARD tags
SINTER tags autres_tags # intersection
SUNION tags autres_tags

É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 grand
ZRANGE scores 0 2 REV WITHSCORES # les 3 meilleurs
ZSCORE scores "alice"
ZINCRBY scores 10 "bob"
ZRANK scores "alice"
ZREM scores "bob"

Journal d’événements en ajout seul.

XADD evenements * type connexion utilisateur 42
XLEN evenements
XRANGE evenements - +
XREAD COUNT 10 STREAMS evenements 0
SETBIT visites:2026-01-01 42 1 # l'utilisateur 42 a visité
GETBIT visites:2026-01-01 42
BITCOUNT visites:2026-01-01
PFADD visiteurs "a" "b" "c" # comptage approximatif d'éléments uniques
PFCOUNT visiteurs

Dans une première console :

SUBSCRIBE canal

Dans une seconde :

PUBLISH canal "bonjour"

Les messages ne sont pas conservés : un abonné absent les perd (pour de la persistance, utiliser un flux).

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
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.