Näin tietojen jakaminen toimii Redis Clusterissa:
Redis Cluster Sharding
Redis Cluster käyttää sisäänrakennettua jakomekanismia tietojen automaattiseen osiointiin useisiin Redis-solmuihin. Tämän toiminnan tärkeimmät näkökohdat ovat:
1. Avaintilan osiointi: Redis-klusterin koko avaintila on jaettu 16 384 hash-paikkaan. Nämä hash-paikat vastaavat tietojen jakamisesta klusterin kesken.
2. Hash Slots Assignment: Jokaiselle klusterin Redis-solmulle on määritetty osajoukko 16 384 hash-välistä. Hajautusvälien osoittaminen solmuille tapahtuu hash-toiminnon kautta.
3. Tietojen sijoittaminen: Kun asiakas haluaa tallentaa avain-arvo-parin, asiakas laskee avaimen hajautusarvon käyttämällä ennalta määritettyä hash-funktiota. Tämä hash-arvo kartoitetaan sitten johonkin 16 384 hash-paikasta. Tiedot tallennetaan sitten Redis-solmuun, joka omistaa kyseisen hash-paikan.
4. Replikointi: Jokaisella hash-välillä on ensisijainen solmu, joka vastaa luku-/kirjoituspyyntöjen palvelemisesta. Lisäksi on olemassa yksi tai useampi replikasolmu, joka ylläpitää kopiota tiedoista korkeaa käytettävyyttä varten.
5. Automaattinen uudelleenjako: Kun solmuja lisätään tai poistetaan klusterista, hajautusvälien määritykset tasapainotetaan automaattisesti uudelleen, jotta varmistetaan tasainen tietojen ja kuormituksen jakautuminen klusterin välillä.
Redis Cluster Shardingin edut
1. Skaalautuvuus: Jakamalla tietoja useisiin solmuihin Redis Cluster voi skaalata käsitelläkseen suuria tietomääriä ja suurta suorituskykyä.
2. Korkea saatavuus: Hajautusvälien replikointi ensisijaisen ja replikasolmun välillä varmistaa korkean käytettävyyden, koska asiakkaat voivat jatkaa tietojen käyttöä, vaikka jotkin solmut epäonnistuvat.
3. Transparent Client Access: Redis-klusteri käsittelee tiivisteen paikkakartoituksen läpinäkyvästi, joten asiakkaat voivat käyttää tietoja ilman, että heidän tarvitsee tietää taustalla olevan jaon yksityiskohtia.
4. Automaattinen hallinta: Redis Cluster automatisoi jakamisen hallinnan, mukaan lukien tietojen tasapainottamisen klusterin kasvaessa tai pienentyessä.
Kaiken kaikkiaan Redis Clusterin sharing-arkkitehtuuri mahdollistaa erittäin skaalautuvan, saatavilla olevan ja helposti hallittavan hajautetun tietovaraston, joten se sopii hyvin sovelluksiin, joissa on suuria tietomääriä tai korkeat suorituskyvyn vaatimukset.
Lainaukset:[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