Štai kaip „Redis Cluster“ veikia duomenų sparta:
REDIS Cluster Sharding
„Redis Cluster“ naudoja įmontuotą „Sharding“ mechanizmą, kad automatiškai padalijtų duomenis keliuose „Redis“ mazguose. Pagrindiniai yra tai, kaip tai veikia:
1. Klavišų erdvės padalijimas: Visa „Redis“ klasterio raktų erdvė yra padalinta į 16 384 maišos laiko tarpsnius. Šie maišos laiko tarpsniai yra atsakingi už duomenų paskirstymą visame klasteryje.
2. Maišos laiko tarpsnių priskyrimas: Kiekvienam klasterio „Redis“ mazgui priskiriamas 16 384 maišos laiko tarpsnių pogrupis. Maišos laiko tarpsnių priskyrimas mazgams atliekamas per maišos funkciją.
3. Duomenų išdėstymas: Kai klientas nori išsaugoti raktų vertės porą, klientas apskaičiuoja rakto maišos vertę, naudodamas iš anksto nustatytą maišos funkciją. Tada ši maišos vertė yra susieta su vienu iš 16 384 maišos laiko tarpsnių. Tada duomenys saugomi „Redis“ mazge, kuriam priklauso tas maišos lizdas.
4. Replikacija: Kiekvienam maišos lizdui yra pagrindinis mazgas, atsakingas už skaitymo/rašymo užklausų patiekimą. Be to, yra vienas ar keli replikos mazgai, kurie palaiko duomenų kopiją, kad būtų galima pasiekti aukštą prieinamumą.
5. Automatinis pertvarkymas: Kai mazgai pridedami arba pašalinami iš klasterio, maišos lizdo priskyrimai yra automatiškai iš naujo subalansuojami, kad būtų užtikrintas tolygus duomenų pasiskirstymas ir apkrova per klasterį.
„Redis Cluster Sharding“ pranašumai
1. Mastelio keitimas: paskirstydamas duomenis keliuose mazguose, „Redis“ klasteris gali mastelio keitimą, kad būtų galima tvarkyti didelius duomenų kiekius ir didelį pralaidumą.
2. Didelis prieinamumas: maišos laiko tarpsnių replikacija per pirminius ir replikos mazgus užtikrina didelį prieinamumą, nes klientai gali toliau naudotis duomenimis, net jei kai kurie mazgai sugenda.
3. Skaidri kliento prieiga: maišos lizdo žemėlapių sudarymas skaidriai tvarko „Redis“ klasterį, todėl klientai gali pasiekti duomenis, nereikia žinoti išsamios detalės apie pagrindinį spragą.
4. Automatinis valdymas: „Redis Cluster“ automatizuoja skardos valdymą, įskaitant duomenų remonto duomenis, kai klasteris auga ar susitraukia.
Apskritai, „Redis“ klasterio „Sharding“ architektūra leidžia jai pateikti labai keičiamą, prieinamą ir lengvai paskirstytą duomenų saugyklą, todėl ji yra tinkama programoms, turinčioms didelius duomenų kiekius ar didelius pralaidumo reikalavimus.
Citatos:[1] https://scalegrid.io/blog/intro-to-redis-Sharding/
[2] https://redis.io/redis-enterprise/technology/redis-enterprise-custer-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.nodgroups.html