Jak funguje sdílení dat v Redis Cluster:
Redis Cluster Sharding
Redis Cluster používá vestavěný mechanismus sdílení k automatickému rozdělení dat mezi více uzlů Redis. Klíčové aspekty toho, jak to funguje, jsou:
1. Keyspace Partitioning: Celý klíčový prostor v Redis Cluster je rozdělen do 16 384 hash slotů. Tyto hashovací sloty jsou zodpovědné za distribuci dat napříč clusterem.
2. Přiřazení hashovacích slotů: Každému uzlu Redis v clusteru je přiřazena podmnožina 16 384 hashovacích slotů. Přiřazení hashovacích slotů uzlům se provádí pomocí hashovací funkce.
3. Umístění dat: Když chce klient uložit pár klíč–hodnota, vypočítá hodnotu hash klíče pomocí předdefinované hashovací funkce. Tato hašovací hodnota je pak mapována na jeden z 16 384 hašovacích slotů. Data jsou poté uložena v uzlu Redis, který vlastní daný hash slot.
4. Replikace: Pro každý hash slot existuje primární uzel, který je zodpovědný za obsluhu požadavků na čtení/zápis. Navíc existuje jeden nebo více replikovaných uzlů, které udržují kopii dat pro vysokou dostupnost.
5. Automatické resharding: Jak jsou uzly přidávány nebo odebírány z clusteru, přiřazení hash slotů jsou automaticky znovu vyvážena, aby bylo zajištěno rovnoměrné rozložení dat a zatížení v rámci clusteru.
Výhody Redis Cluster Sharding
1. Škálovatelnost: Distribucí dat mezi více uzlů může Redis Cluster škálovat tak, aby zvládl velké množství dat a vysokou propustnost.
2. Vysoká dostupnost: Replikace hash slotů mezi primárními a replikovanými uzly zajišťuje vysokou dostupnost, protože klienti mohou nadále přistupovat k datům, i když některé uzly selžou.
3. Transparentní klientský přístup: Mapování hash slotů je řešeno transparentně Redis Clusterem, takže klienti mají přístup k datům, aniž by potřebovali znát podrobnosti o základním shardingu.
4. Automatická správa: Redis Cluster automatizuje správu shardingu, včetně opětovného vyvažování dat, jak se cluster rozrůstá nebo zmenšuje.
Celkově architektura shardingu Redis Cluster umožňuje poskytovat vysoce škálovatelné, dostupné a snadno spravovatelné distribuované úložiště dat, takže se dobře hodí pro aplikace s velkými objemy dat nebo vysokými požadavky na propustnost.
Citace:[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