Redis-py: Redis mit Python nutzen – Tutorial & Guide

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung

Redis ist ein leistungsstarker In-Memory-Datenspeicher, der als Cache, Message Broker, Datenbank oder Warteschlange eingesetzt wird. Er unterstützt verschiedene Datenstrukturen wie Strings, Listen, Sets, Hashes und mehr. Für Python gibt es den offiziellen Client redis-py, der eine komfortable Schnittstelle zur Redis-Funktionalität bietet.

Redis-py ist der beliebteste und zuverlässigste Client für die Arbeit mit Redis in Python-Anwendungen. Die Bibliothek wird aktiv von der Community entwickelt und gepflegt und bietet eine einfache sowie intuitive API für die Interaktion mit dem Redis-Server.

Was ist die redis-py Bibliothek?

Redis-py ist die offizielle Python-Bibliothek für Redis, die alle Redis-Funktionen vollständig unterstützt. Die Bibliothek ist in reinem Python geschrieben und bietet sowohl eine synchrone als auch eine asynchrone Schnittstelle für die Arbeit mit Redis.

Hauptfunktionen von redis-py

Die Bibliothek bietet einen vollständigen Satz an Funktionen für die Arbeit mit Redis:

  • Unterstützung aller Redis-Datentypen
  • Transaktionen und Pipelines
  • Pub/Sub-Funktionalität
  • Unterstützung von Redis Sentinel und Clustern
  • Asynchrone Arbeit via redis.asyncio
  • Verbindungspooling für optimierte Leistung
  • Automatische Wiederverbindung bei Verbindungsabbrüchen

Installation und Verbindung

Bibliothek installieren

pip install redis

Für die Installation mit zusätzlichen Abhängigkeiten:

pip install redis[hiredis]  # Für verbesserte Leistung

Verbindung zu Redis herstellen

Basisverbindung zu Redis (Standardport 6379):

import redis

# Verbindung zu lokalem Redis
client = redis.Redis(host='localhost', port=6379, db=0)

# Verbindung mit Passwort
client = redis.Redis(host='localhost', port=6379, password='deinpasswort', db=0)

# Verbindung per URL
client = redis.from_url('redis://localhost:6379/0')

Verbindung prüfen

try:
    response = client.ping()
    print(f"Verbindung hergestellt: {response}")  # True
except redis.ConnectionError:
    print("Fehler bei der Verbindung zu Redis")

Redis-Grundlagen und wichtige Datentypen

Redis unterstützt fünf grundlegende Datentypen, die jeweils eigene Besonderheiten und Methoden haben:

Strings

Der einfachste Datentyp in Redis. Kann Text, Zahlen oder Binärdaten speichern.

Listen

Geordnete Sammlungen von Strings. Unterstützen das Hinzufügen von Elementen am Anfang und Ende.

Sets

Ungeordnete Sammlungen eindeutiger Strings. Unterstützen Operationen wie Schnittmenge und Vereinigung.

Hashes

Abbildungen zwischen String-Feldern und -Werten. Ideal zur Darstellung von Objekten.

Sorted Sets

Sets mit einer Bewertung für jedes Element. Die Elemente sind nach der Bewertung geordnet.

Wichtige Redis-Befehle mit redis-py

Arbeiten mit Strings

# Wert setzen und abrufen
client.set("user:name", "Max")
name = client.get("user:name").decode('utf-8')

# Setzen mit TTL
client.setex("session:123", 3600, "active")  # 1 Stunde

# Arbeiten mit Zahlen
client.set("counter", 0)
client.incr("counter")  # Um 1 erhöhen
client.incrby("counter", 5)  # Um 5 erhöhen
client.decr("counter")  # Um 1 verringern

Arbeiten mit Listen

# Elemente hinzufügen
client.lpush("tasks", "task1", "task2")  # Am Anfang
client.rpush("tasks", "task3", "task4")  # Am Ende

# Elemente abrufen
tasks = client.lrange("tasks", 0, -1)  # Alle Elemente
first_task = client.lpop("tasks")  # Erstes Element entfernen und zurückgeben
last_task = client.                    

Empfehlungen