Sådan fungerer datadeling i Redis Cluster:
Redis Cluster Sharding
Redis Cluster bruger en indbygget sharding-mekanisme til automatisk at opdele data på tværs af flere Redis-noder. De vigtigste aspekter af, hvordan dette fungerer, er:
1. Tasterumspartitionering: Hele nøglerummet i en Redis Cluster er opdelt i 16.384 hash-slots. Disse hash-slots er ansvarlige for at distribuere data på tværs af klyngen.
2. Hash Slots Assignment: Hver Redis node i klyngen er tildelt en delmængde af de 16.384 hash slots. Tildelingen af hash-slots til noder sker gennem en hash-funktion.
3. Dataplacering: Når en klient ønsker at gemme et nøgleværdi-par, beregner klienten en hashværdi for nøglen ved hjælp af en foruddefineret hashfunktion. Denne hash-værdi tilknyttes derefter til en af de 16.384 hash-slots. Dataene gemmes derefter på Redis-knuden, der ejer hash-slot.
4. Replikering: For hver hash-slot er der en primær node, der er ansvarlig for at betjene læse-/skriveanmodninger. Derudover er der en eller flere replikanoder, der vedligeholder en kopi af dataene for høj tilgængelighed.
5. Automatisk resharding: Når noder tilføjes eller fjernes fra klyngen, bliver hash-slottildelingerne automatisk rebalanceret for at sikre en jævn fordeling af data og belastning på tværs af klyngen.
Fordele ved Redis Cluster Sharding
1. Skalerbarhed: Ved at distribuere data på tværs af flere noder kan Redis Cluster skalere til at håndtere store mængder data og høj gennemstrømning.
2. Høj tilgængelighed: Replikeringen af hash-slots på tværs af primære og replika noder sikrer høj tilgængelighed, da klienter kan fortsætte med at få adgang til data, selvom nogle noder fejler.
3. Transparent klientadgang: Hash slot mapping håndteres gennemsigtigt af Redis Cluster, så klienter kan få adgang til dataene uden at skulle kende detaljerne i den underliggende sharding.
4. Automatisk styring: Redis Cluster automatiserer styringen af sharding, herunder rebalancering af data, efterhånden som klyngen vokser eller krymper.
Overordnet set gør sharding-arkitekturen i Redis Cluster det muligt at levere et meget skalerbart, tilgængeligt og let at administrere distribueret datalager, hvilket gør det velegnet til applikationer med store datamængder eller høje gennemløbskrav.
Citater:[1] https://scalegrid.io/blog/intro-to-redis-sharding/
[2] https://redis.io/redis-enterprise/technology/redis-enterprise-cluster-architecture/
[3] https://yandex.cloud/da/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