0Pricing
AWS Solutions Architect · Lektion

Redis im Vergleich zu Memcached: Die richtige Engine auswählen

Vergleichen Sie Redis (Persistenz, Replikation, sortierte Mengen, Pub/Sub) mit Memcached (Einfachheit, Multithreading) und treffen Sie Ihre Auswahl anhand der Anforderungen des Anwendungsfalls.

Redis im Vergleich zu Memcached: Die richtige Engine auswählen ist eine kostenlose AWS Solutions Architect-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AWS Solutions Architect-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.

Was ist Amazon ElastiCache?

Amazon ElastiCache ist ein vollständig verwalteter In-Memory-Caching-Service, mit dem sich beliebte Open-Source-In-Memory-Datenspeicher ganz einfach in der Cloud bereitstellen, verwalten und skalieren lassen. Er unterstützt zwei Engines: Redis und Memcached. Indem häufig angeforderte Daten aus dem Arbeitsspeicher statt aus einer Datenbank bereitgestellt werden, kann ElastiCache die Datenbanklast um Größenordnungen reduzieren und die Antwortlatenz von Millisekunden auf Mikrosekunden senken. Die Wahl zwischen Redis und Memcached ist eine häufige Prüfungsfrage im SAA-C03-Examen.

Memcached: pure Einfachheit

Memcached ist ein verteilter In-Memory-Key-Value-Store, der auf Einfachheit und horizontale Skalierbarkeit ausgerichtet ist. Die wichtigsten Eigenschaften: Multithreading (kann alle CPU-Kerne eines einzelnen Knotens nutzen), einfache Key-Value-Speicherung (nur Zeichenfolgen, keine komplexen Datenstrukturen), keine Persistenz (Daten gehen beim Neustart eines Knotens verloren), keine Replikation (keine Standby-Knoten oder Replikate) und horizontales Sharding über konsistentes Hashing auf Clientseite. Memcached ist die richtige Wahl, wenn Sie einen einfachen Cache in großem Maßstab benötigen und weder Persistenz oder komplexe Datentypen noch hohe Verfügbarkeit erforderlich sind.

# Create a Memcached cluster with 3 nodes
aws elasticache create-cache-cluster \
  --cache-cluster-id my-memcached \
  --engine memcached \
  --cache-node-type cache.r7g.large \
  --num-cache-nodes 3 \
  --cache-subnet-group-name my-subnet-group

# Memcached auto-discovers nodes via the config endpoint
# Application connects to: my-memcached.cfg.use1.cache.amazonaws.com:11211

Redis: funktionsreicher In-Memory-Store

Redis (Remote Dictionary Server) ist ein Single-Threaded-In-Memory-Datenspeicher für Datenstrukturen mit umfangreichen Funktionen, der Zeichenfolgen, Hashes, Listen, Mengen, sortierte Mengen, Bitmaps, HyperLogLogs, Streams und geografische Indizes unterstützt. Die wichtigsten Vorteile gegenüber Memcached: optionale Persistenz (AOF- und RDB-Snapshots), Replikation (Lesereplikate und automatisches Failover), Pub/Sub-Messaging, Lua-Scripting, Transaktionen (MULTI/EXEC) und der Cluster-Modus für horizontales Sharding. Redis ist für die meisten Caching-Szenarien aus der Praxis die richtige Wahl.

# Redis data structure examples

# String
# SET user:1:name 'Alice'
# GET user:1:name

# Hash (object-like)
# HSET product:42 name 'Widget' price '9.99' stock '100'
# HGETALL product:42

# Sorted set (leaderboard)
# ZADD leaderboard 9500 'alice' 8700 'bob' 9100 'carol'
# ZREVRANGE leaderboard 0 2 WITHSCORES

# Pub/Sub
# PUBLISH notifications 'order_shipped:12345'
# SUBSCRIBE notifications

Redis-Persistenz: AOF und RDB

Redis unterstützt zwei Persistenzmechanismen: RDB (Redis Database) – regelmäßige Point-in-Time-Snapshots, die in konfigurierbaren Intervallen auf der Festplatte gespeichert werden (schnelle Neustarts, aber möglicher Datenverlust zwischen den Snapshots). AOF (Append-Only File) – protokolliert jeden Schreibvorgang; beim Neustart gibt Redis das Protokoll wieder, um den Zustand zu rekonstruieren (höhere Dauerhaftigkeit auf Kosten größerer Dateien und langsamerer Neustarts). In ElastiCache können Sie AOF aktivieren, um Daten über Neustarts von Knoten hinweg zu persistieren. Dies ist besonders wichtig, wenn ElastiCache nicht nur als Cache, sondern beispielsweise als primärer Datenspeicher für Sitzungsdaten verwendet wird.

# Create an ElastiCache Redis cluster with AOF enabled
aws elasticache create-replication-group \
  --replication-group-id my-redis \
  --replication-group-description 'Redis with persistence' \
  --cache-node-type cache.r7g.large \
  --engine redis \
  --num-cache-clusters 2 \
  --cache-parameter-group-name default.redis7 \
  --snapshot-retention-limit 5

# Note: Enable AOF via parameter group: appendonly=yes

Redis-Replikation und automatisches Failover

Redis unterstützt Replikationsgruppen mit einem primären Knoten, der alle Schreibvorgänge verarbeitet, und bis zu fünf Lesereplikaten, die Lesevorgänge verarbeiten. Wenn Multi-AZ und automatisches Failover aktiviert sind, stuft ElastiCache bei einem Ausfall des primären Knotens automatisch ein Lesereplikat zum primären Knoten hoch – in der Regel ist das Failover in weniger als 60 Sekunden abgeschlossen. Dadurch erhalten Redis-basierte Anwendungen eine hohe Verfügbarkeit, die Memcached nicht bieten kann (Memcached unterstützt keine Replikation). Für Produktionsanwendungen, die hochverfügbares Caching benötigen, sollten Sie immer Redis mit automatischem Failover verwenden.

# Create a Redis replication group with Multi-AZ failover
aws elasticache create-replication-group \
  --replication-group-id prod-redis \
  --description 'Production Redis with HA' \
  --cache-node-type cache.r7g.xlarge \
  --engine redis \
  --multi-az-enabled \
  --automatic-failover-enabled \
  --num-cache-clusters 3 \
  --cache-subnet-group-name multi-az-subnet-group

# 1 primary + 2 replicas across 3 AZs

Sortierte Redis-Mengen für Ranglisten

Sortierte Mengen gehören zu den leistungsfähigsten Datenstrukturen von Redis. Jedes Mitglied verfügt über einen zugehörigen Gleitkommawert als Score, und die Mitglieder werden stets sortiert gehalten. Dadurch eignen sich sortierte Mengen ideal für Ranglisten (Sortierung nach Score), Prioritätswarteschlangen (Jobs mit der höchsten Priorität zuerst verarbeiten) und Rate Limiting (gleitendes Zeitfenster mit Zeitstempeln als Scores). Die Operationen ZADD, ZRANGE, ZREVRANGE, ZRANK und ZRANGEBYSCORE haben alle die Komplexität O(log n) und sind daher selbst bei Millionen von Einträgen äußerst effizient.

# Leaderboard operations using Redis sorted sets

# Add/update scores
# ZADD game:leaderboard 10500 'player:alice'
# ZADD game:leaderboard 9800  'player:bob'
# ZADD game:leaderboard 11200 'player:carol'

# Get top 3 players (highest scores first)
# ZREVRANGE game:leaderboard 0 2 WITHSCORES
# Result: carol 11200, alice 10500, bob 9800

# Get a player's rank (0-indexed)
# ZREVRANK game:leaderboard 'player:alice'
# Result: 1 (second place)

Redis Pub/Sub für Messaging

Mit Pub/Sub in Redis können Publisher Nachrichten an Channels senden, ohne zu wissen, wer diese abonniert hat. Subscriber erhalten in Echtzeit alle Nachrichten, die an von ihnen abonnierte Channels gesendet werden. Pub/Sub-Nachrichten werden nicht persistiert – ist ein Subscriber offline, verpasst er die Nachricht. Für persistentes Messaging mit garantierter Zustellung verwenden Sie Redis Streams (eine robustere Datenstruktur, die in Redis 5 hinzugefügt wurde) oder einen speziell dafür entwickelten Messaging-Service wie SQS oder SNS. Für das SAA-C03-Examen ist Redis Pub/Sub eine Option für leichte Echtzeitbenachrichtigungen zwischen Services.

# Publisher side (broadcasts to 'notifications' channel)
# PUBLISH notifications '{"type":"order_shipped","orderId":"12345"}'

# Subscriber side (listens for messages)
# SUBSCRIBE notifications

# Pattern subscribe (wildcard channel matching)
# PSUBSCRIBE order:*
# Receives messages from: order:created, order:shipped, order:delivered

# Note: Unlike SQS, pub/sub is fire-and-forget — no acknowledgement

Memcached vs. Redis: Entscheidungstabelle

Verwenden Sie für das SAA-C03-Examen den folgenden Entscheidungsrahmen: Wählen Sie Memcached, wenn Sie Folgendes benötigen: einen einfachen Cache ohne Anforderungen an hohe Verfügbarkeit, Multithreading-Performance und horizontale Skalierung durch das Hinzufügen von Knoten (reiner Cache). Wählen Sie Redis, wenn Sie Folgendes benötigen: Persistenz (Sitzungsspeicher), Replikation und Failover (hohe Verfügbarkeit), komplexe Datentypen (sortierte Mengen für Ranglisten, Mengen, Listen), Pub/Sub, Lua-Transaktionen oder den Cluster-Modus für horizontale Skalierung über mehrere Shards. Wenn in der Prüfungsfrage eine Funktion genannt wird, die über einfaches Key-Value-Caching hinausgeht, ist Redis fast immer die richtige Antwort.

Cache-Knotentypen und -familien

ElastiCache bietet mehrere Knotentypfamilien: r7g (Graviton 3, speicheroptimiert – bestes Preis-Leistungs-Verhältnis, für die meisten Caching-Szenarien empfohlen), m7g (ausgewogenes Verhältnis von Rechenleistung und Arbeitsspeicher) und t4g (burstable, kostengünstig für Entwicklung und Tests). Die Knotengrößen reichen von cache.t4g.micro (500 MB) bis cache.r7g.16xlarge (425 GB). Wählen Sie für die Produktion eine Knotengröße, die Ihren gesamten Datensatz im Arbeitsspeicher mit einer Reserve von 20–25 % halten kann. Wenn der Arbeitsspeicher knapp wird, kommt es zu Evictions (Memcached) oder OOM-Fehlern (Redis).

# Get available cache node types
aws elasticache describe-cache-engine-versions \
  --engine redis \
  --query 'CacheEngineVersions[?contains(EngineVersion, '7')].{Engine:Engine,Version:EngineVersion}'

# Check memory and vCPU for a node type
aws elasticache describe-cache-engine-versions \
  --cache-parameter-group-family redis7

# Monitor evictions to detect memory pressure
# CloudWatch: Evictions metric > 0 means cache is full

ElastiCache-Sicherheit

ElastiCache wird innerhalb Ihrer VPC bereitgestellt, wobei Security Groups den Zugriff steuern – standardmäßig besteht kein Zugriff über das öffentliche Internet. Aktivieren Sie für Redis AUTH-Tokens (ein Kennwort, das Clients angeben müssen) und die Verschlüsselung während der Übertragung (TLS) für Verbindungen sowie die Verschlüsselung im Ruhezustand mit KMS. Für Memcached ist nur TLS für die Verschlüsselung während der Übertragung verfügbar (keine Verschlüsselung im Ruhezustand und kein AUTH). Bei der Migration von unverschlüsseltem zu verschlüsseltem Redis gibt es keine Migration an Ort und Stelle – Sie müssen einen neuen verschlüsselten Cluster erstellen und ihn vorab mit Daten füllen.

# Create a Redis cluster with TLS and AUTH token
aws elasticache create-replication-group \
  --replication-group-id secure-redis \
  --description 'Encrypted Redis' \
  --cache-node-type cache.r7g.large \
  --engine redis \
  --transit-encryption-enabled \
  --at-rest-encryption-enabled \
  --auth-token 'MySecretPassword123!'

# Store the AUTH token in Secrets Manager, not in your app code

Eviction-Richtlinien

Wenn ein Redis- oder Memcached-Cache voll ist, bestimmt die Eviction-Richtlinie, welche Schlüssel entfernt werden, um Platz zu schaffen. Gängige Eviction-Richtlinien für Redis: noeviction (gibt einen OOM-Fehler zurück – geeignet, wenn der Cache als primärer Datenspeicher dient), allkeys-lru (entfernt den am längsten nicht verwendeten Schlüssel aus allen Schlüsseln – geeignet für allgemeine Caches), volatile-lru (LRU unter den Schlüsseln mit gesetztem TTL – erhält Schlüssel ohne Ablaufzeit), allkeys-random (zufällige Eviction) und allkeys-lfu (am seltensten verwendet). Für typische Caching-Szenarien werden allkeys-lru oder allkeys-lfu empfohlen.

# Set eviction policy via parameter group
aws elasticache create-cache-parameter-group \
  --cache-parameter-group-name redis7-lru \
  --cache-parameter-group-family redis7 \
  --description 'LRU eviction policy'

aws elasticache modify-cache-parameter-group \
  --cache-parameter-group-name redis7-lru \
  --parameter-name-values ParameterName=maxmemory-policy,ParameterValue=allkeys-lru

# Apply the parameter group to your cluster:
aws elasticache modify-replication-group \
  --replication-group-id prod-redis \
  --cache-parameter-group-name redis7-lru

Schnelltest

Testen Sie Ihr Verständnis der Konzepte aus dieser Lektion für AWS Solutions Architect (SAA-C03).

Lektionszusammenfassung

In dieser Lektion haben Sie gelernt: Memcached ist einfach, multithreadfähig und bietet keine hohe Verfügbarkeit – ideal für die reine horizontale Skalierung einfacher Caches, Redis unterstützt komplexe Datenstrukturen, Persistenz, Pub/Sub und Multi-AZ-Failover – ideal für die meisten Produktionsszenarien mit Caching, und sortierte Mengen machen Redis zur naheliegenden Wahl für Ranglisten und Prioritätswarteschlangen. Als Nächstes beschäftigen wir uns mit Redis-Replikationsgruppen und dem Cluster-Modus für horizontales Sharding.

Häufig gestellte Fragen

Ist die Lektion „Redis im Vergleich zu Memcached: Die richtige Engine auswählen“ kostenlos?

Ja — der vollständige Text von „Redis im Vergleich zu Memcached: Die richtige Engine auswählen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AWS Solutions Architect-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Redis im Vergleich zu Memcached: Die richtige Engine auswählen“?

Vergleichen Sie Redis (Persistenz, Replikation, sortierte Mengen, Pub/Sub) mit Memcached (Einfachheit, Multithreading) und treffen Sie Ihre Auswahl anhand der Anforderungen des Anwendungsfalls. Du übst AWS Solutions Architect mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AWS Solutions Architect zu starten?

Keine Vorkenntnisse erforderlich. AWS Solutions Architect auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Redis im Vergleich zu Memcached: Die richtige Engine auswählen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AWS Solutions Architect-Lektion Code schreiben und ausführen?

Ja. Jede AWS Solutions Architect-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Redis im Vergleich zu Memcached: Die richtige Engine auswählen
  2. ElastiCache-Redis-Replikationsgruppen und Clustermodus
  3. Caching-Strategien: Lazy Loading und Write-Through
  4. Sitzungsspeicherung und Leaderboard-Muster
← Zurück zu AWS Solutions Architect