Redis Cluster verteilt Daten über 16384 Hash-Slots.
Setup¶
redis-cli --cluster create \
10.0.1.1:6379 10.0.1.2:6379 10.0.1.3:6379 \
10.0.1.4:6379 10.0.1.5:6379 10.0.1.6:6379 \
--cluster-replicas 1
Operationen¶
redis-cli -c -h 10.0.1.1
CLUSTER INFO
CLUSTER NODES
Einschränkungen¶
- Multi-Key-Operationen → Hash Tags {user}:1
-
Transaktionen nur innerhalb eines Slots
-
Sentinel — HA ohne Sharding
- Cluster — HA + Sharding
- Managed — ElastiCache, Azure Cache
Produktionsbetrieb¶
Deployen Sie Redis Cluster in Produktionsumgebungen mit mindestens 6 Knoten — 3 Master und 3 Replicas fuer automatisches Failover. Wenn ein Master ausfaellt, uebernimmt sein Replica den Slot und der Dienst laeuft ohne Ausfallzeit weiter. Zum Hinzufuegen von Kapazitaet verwenden Sie redis-cli --cluster add-node und dann --cluster reshard zur Umverteilung der Slots.
Bei der Entwicklung von Anwendungen mit Redis Cluster beachten Sie Hash Tags — wenn Sie Multi-Key-Operationen (MGET, Transaktionen) benoetigen, muessen alle Schluessel im gleichen Slot sein. Erreichen Sie dies durch Benennung der Schluessel mit Hash Tags: {user:123}:profile und {user:123}:sessions befinden sich im gleichen Slot. Fuer einfacheres HA ohne Sharding erwaegen Sie Redis Sentinel, der automatisches Failover mit einem einzelnen Master-Knoten bietet.
Cluster für Skalierung¶
Sentinel für HA, Cluster für horizontale Skalierung.