Så här fungerar datadelning i Redis Cluster:
Redis Cluster Sharding
Redis Cluster använder en inbyggd skärningsmekanism för att automatiskt partitionera data över flera Redis-noder. De viktigaste aspekterna av hur detta fungerar är:
1. Nyckelutrymmespartitionering: Hela tangentutrymmet i ett Redis-kluster är uppdelat i 16 384 hashplatser. Dessa hashplatser är ansvariga för att distribuera data över klustret.
2. Hash Slots Assignment: Varje Redis-nod i klustret tilldelas en delmängd av de 16 384 hashplatserna. Tilldelningen av hashplatser till noder görs genom en hashfunktion.
3. Dataplacering: När en klient vill lagra ett nyckel-värdepar, beräknar klienten ett hashvärde för nyckeln med hjälp av en fördefinierad hashfunktion. Detta hashvärde mappas sedan till en av de 16 384 hashplatserna. Data lagras sedan på Redis-noden som äger hashplatsen.
4. Replikering: För varje hashplats finns det en primär nod som är ansvarig för att betjäna läs/skrivförfrågningar. Dessutom finns det en eller flera replikanoder som upprätthåller en kopia av data för hög tillgänglighet.
5. Automatisk omdelning: När noder läggs till eller tas bort från klustret, balanseras hash-platstilldelningarna automatiskt om för att säkerställa en jämn fördelning av data och belastning över klustret.
Fördelar med Redis Cluster Sharding
1. Skalbarhet: Genom att distribuera data över flera noder kan Redis Cluster skalas för att hantera stora mängder data och hög genomströmning.
2. Hög tillgänglighet: Replikeringen av hash-slots över primära och replikanoder säkerställer hög tillgänglighet, eftersom klienter kan fortsätta att komma åt data även om vissa noder misslyckas.
3. Transparent klientåtkomst: Mappningen av hashslot hanteras transparent av Redis Cluster, så att klienter kan komma åt data utan att behöva känna till detaljerna om den underliggande shardingen.
4. Automatisk hantering: Redis Cluster automatiserar hanteringen av sharding, inklusive ombalansering av data när klustret växer eller krymper.
Sammantaget tillåter skärningsarkitekturen i Redis Cluster det att tillhandahålla en mycket skalbar, tillgänglig och lätthanterlig distribuerad datalagring, vilket gör den väl lämpad för applikationer med stora datamängder eller höga genomströmningskrav.
Citat:[1] https://scalegrid.io/blog/intro-to-redis-sharding/
[2] https://redis.io/redis-enterprise/technology/redis-enterprise-cluster-architecture/
[3] https://yandex.cloud/en/docs/managed-redis/concepts/sharding
[4] https://redisson.org/glossary/sharding.html
[5] https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.NodeGroups.html