命令es Redis courants pour la manipulation des données

Connexion au serveur Redis

Le client en ligne de commande redis-cli sert à établir une connexion. Les options -h et -p spécifient l'adresse de l'hôte et le port.

# Connexion à un serveur local sur le port standard
redis-cli -h 127.0.0.1 -p 6379

Commandes de gession des clés et de l'espace

Ces opérations permettent d'inspecter et de gérer l'ensemble des clés stockées dans la base actuelle.

# Obtenir le nombre total de clés
dbsize
# Lister toutes les clés (usage prudent en production)
keys *
# Vérifier l'existence d'une clé
exists cle_principale
# Identifier le type de données d'une clé
type cle_principale
# Supprimer immédiatement une ou plusieurs clés
del cle1 cle2
# Supprimer une clé de manière asynchrone
unlink cle_à_supprimer
# Régler un délai d'expiration (en secondes) sur une clé
expire cle_principale 120
# Consulter le temps de vie restant d'une clé
ttl cle_principale

Sélecsion et réinitialisation de la base

# Basculer vers une autre base de données numérotée
select 3
# Vider toutes les clés de la base courante
flushdb
# Vider les clés de toutes les bases de données
flushall
# Quitter le client
exit

Opérations sur le type String

Le type String est la structure la plus simple, capable de stocker des chaînes, des entiers ou des données binaires (jusqu'à 512 Mo).

# Définir une valeur pour une clé
set ma_cle "bonjour"
# Récupérer la valeur d'une clé
get ma_cle
# Ajouter du texte à la fin de la valeur existante
append ma_cle " monde"
# Obtenir la longueur de la valeur stockée
strlen ma_cle
# Définir la valeur uniquement si la clé n'existe pas
setnx ma_cle "nouvelle_valeur"
# Incrémenter entier (initialise à 1 si absent)
incr compteur_visites
# Décrémenter entier (initialise à -1 si absent)
decr stock_article
# Définir plusieurs paires clé-valeur en une commande
mset cle1 "val1" cle2 "val2" cle3 "val3"
# Définir plusieurs paires clé-valeur seulement si aucune n'existe
msetnx cle_a "x" cle_b "y"
# Récupérer plusieurs valeurs en une seule requête
mget cle1 cle2 cle3
# Extraire une sous-chaîne de la valeur (indices inclus)
getrange ma_cle 0 4
# Remplacer une portion de la valeur à partir d'un indice
setrange ma_cle 6 "univers"
# Définir une valeur avec un délai d'expiration
setex token_session 3600 "abc123"
# Remplacer la valeur et retourner l'ancienne
getset compteur "2024"

Opérations sur le type List

Les listes Redis sont des séquences ordonnées de chaînes, optimisées pour les opérations en tête et en queue.

# Insérer des éléments à gauche (début) de la liste
lpush file_attente "tâche_3" "tâche_2" "tâche_1"
# Insérer des éléments à droite (fin) de la liste
rpush journal "entrée1" "entrée2"
# Retirer et retourner le premier élément (gauche)
lpop file_attente
# Retirer et retourner le dernier élément (droite)
rpop journal
# Transférer le dernier élément d'une liste vers le début d'une autre
rpoplpush source destination
# Lister les éléments dans un intervalle d'indices
lrange journal 0 -1
# Consulter l'élément à un indice précis
lindex journal 2
# Connaître la longueur de la liste
llen file_attente
# Insérer un élément avant une valeur de référence
linsert journal before "entrée2" "entrée_insérée"
# Insérer un élément après une valeur de référence
linsert journal after "entrée1" "nouvelle_entrée"
# Supprimer N occurrences d'une valeur depuis la gauche
lrem file_attente 1 "tâche_annulée"
# Modifier la valeur à un indice spécifique
lset journal 0 "entrée_modifiée"

Opérations sur le type Set

Les ensembles non ordonnés stockent des chaînes uniques et supportent les opérations ensemblistes.

# Ajouter un ou plusieurs membres à un ensemble
sadd ensemble_tags "dev" "redis" "noSQL"
# Lister tous les membres d'un ensemble
smembers ensemble_tags
# Vérifier si un élément appartient à l'ensemble
sismember ensemble_tags "redis"
# Compter le nombre de membres dans l'ensemble
scard ensemble_tags
# Supprimer un ou plusieurs membres de l'ensemble
srem ensemble_tags "obsolete"
# Retirer et retourner un membre aléatoire
spop ensemble_tags
# Retourner N membres aléatoires sans les retirer
srandmember ensemble_tags 3
# Déplacer un membre d'un ensemble vers un autre
smove ensemble_actif ensemble_archive "ancien_element"
# Obtenir l'intersection de deux ensembles
sinter ensemble_a ensemble_b
# Obtenir l'union de deux ensembles (sans doublons)
sunion ensemble_x ensemble_y
# Obtenir la différence entre deux ensembles
sdiff ensemble_principale ensemble_exclusion

Opérations sur le type Hash

Les hashes sont des collections de paires champ-valeur associées à une clé, idéales pour représenter des objets.

# Stocker plusieurs champs dans un hash
hset profil:utilisateur1 prenom "Alice" nom "Dupont" age "30"
# Mettre à jour un champ spécifique
hset profil:utilisateur1 age "31"
# Lire la valeur d'un champ
hget profil:utilisateur1 prenom
# Vérifier l'existence d'un champ
hexists profil:utilisateur1 email
# Lister tous les noms de champs
hkeys profil:utilisateur1
# Lister toutes les valeurs des champs
hvals profil:utilisateur1
# Ajouter un champ seulement s'il n'existe pas
hsetnx profil:utilisateur1 verifie "true"

Opérations sur le type Sorted Set

Les ensembles triés associent à chaque membre un score numérique, permettant un classement constant.

# Ajouter des membres avec leurs scores (ex: horodatage)
zadd classement:jeux 150 "JoueurA" 320 "JoueurB" 95 "JoueurC"
# Lister les membres par ordre de score croissant dans un intervalle
zrange classement:jeux 0 -1
# Lister les membres avec leurs scores
zrange classement:jeux 0 -1 withscores
# Sélectionner les membres dont le score est dans une plage
zrangebyscore classement:jeux 100 300
zrangebyscore classement:jeux 100 300 withscores
zrangebyscore classement:jeux -inf +inf limit 0 5
# Lister les membres par ordre de score décroissant
zrevrangebyscore classement:jeux 300 100
zrevrangebyscore classement:jeux 300 100 withscores
# Supprimer un ou plusieurs membres
zrem classement:jeux "JoueurC"

Étiquettes: Redis NoSQL base de données clé-valeur commande en ligne de ligne Data Structures

Publié le 29 juin à 21h57