Redis-py : guide complet pour utiliser Redis avec Python

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction

Redis est un magasin de données en mémoire hautes performances, utilisé comme cache, broker de messages, base de données ou file d'attente. Il prend en charge diverses structures de données : chaînes, listes, ensembles, hachages et autres. Pour Python, il existe un client officiel — redis-py, qui offre une interface pratique pour exploiter les fonctionnalités de Redis.

Redis-py est le client le plus populaire et le plus fiable pour travailler avec Redis dans les applications Python. La bibliothèque est activement développée et maintenue par la communauté, offrant une API simple et intuitive pour interagir avec le serveur Redis.

Qu'est-ce que la bibliothèque redis-py

Redis-py est la bibliothèque Python officielle pour travailler avec Redis, offrant un support complet de toutes les fonctionnalités de Redis. Écrite en Python pur, elle propose à la fois une interface synchrone et asynchrone pour interagir avec Redis.

Fonctionnalités principales de redis-py

La bibliothèque fournit un ensemble complet de fonctions pour travailler avec Redis :

  • Support de tous les types de données Redis
  • Gestion des transactions et pipelines
  • Fonctionnalité Pub/Sub
  • Support de Redis Sentinel et des clusters
  • Opérations asynchrones via redis.asyncio
  • Pool de connexions pour optimiser les performances
  • Reconnexion automatique en cas de perte de connexion

Installation et connexion

Installation de la bibliothèque

pip install redis

Pour une installation avec des dépendances supplémentaires :

pip install redis[hiredis]  # Pour des performances améliorées

Connexion à Redis

Connexion de base à Redis (par défaut sur le port 6379) :

import redis

# Connexion à Redis local
client = redis.Redis(host='localhost', port=6379, db=0)

# Connexion avec mot de passe
client = redis.Redis(host='localhost', port=6379, password='votremotdepasse', db=0)

# Connexion via URL
client = redis.from_url('redis://localhost:6379/0')

Vérification de la connexion

try:
    response = client.ping()
    print(f"Connexion établie : {response}")  # True
except redis.ConnectionError:
    print("Erreur de connexion à Redis")

Fondamentaux de Redis et types de données clés

Redis prend en charge cinq types de données principaux, chacun avec ses propres caractéristiques et méthodes :

Chaînes (Strings)

Le type de données le plus basique dans Redis. Peut stocker du texte, des nombres, des données binaires.

Listes (Lists)

Collections ordonnées de chaînes. Permettent d'ajouter des éléments au début ou à la fin.

Ensembles (Sets)

Collections non ordonnées de chaînes uniques. Supportent les opérations d'intersection et d'union.

Hachages (Hashes)

Correspondances entre champs et valeurs de type chaîne. Idéaux pour représenter des objets.

Ensembles ordonnés (Sorted Sets)

Ensembles avec un score pour chaque élément. Les éléments sont triés par score.

Commandes Redis principales via redis-py

Travailler avec les chaînes

# Définir et obtenir une valeur
client.set("user:name", "Jean")
name = client.get("user:name").decode('utf-8')

# Définir avec TTL
client.setex("session:123", 3600, "active")  # 1 heure

# Travailler avec des nombres
client.set("counter", 0)
client.incr("counter")  # Incrémenter de 1
client.incrby("counter", 5)  # Incrémenter de 5
client.decr("counter")  # Décrémenter de 1

Travailler avec les listes

# Ajouter des éléments
client.lpush("tasks", "task1", "task2")  # Au début
client.rpush("tasks", "task3", "task4")  # À la fin

# Obtenir des éléments
tasks = client.lrange("tasks", 0, -1)  # Tous les éléments
first_task = client.lpop("tasks")  # Supprimer et retourner le premier
last_task = client.                    

Recommendations