Lūk, kā Data Sharding darbojas Redis klasterī:
Redis klastera sharding
Redis klasteris izmanto iebūvētu sharding mehānismu, lai automātiski sadalītu datus vairākos Redis mezglos. Galvenie aspekti, kā tas darbojas,:
1. Keyspace sadalīšana: visa taustiņu telpa Redis klasterī ir sadalīta 16 384 hash slotos. Šīs hash sloti ir atbildīgi par datu izplatīšanu visā klasterī.
2. Hash slotu piešķiršana: katram klasterim Redis mezglam tiek piešķirta 16 384 hash spraugu apakškopa. Hash laika nišu piešķiršana mezgliem tiek veikta, izmantojot hash funkciju.
3. Datu izvietojums: Kad klients vēlas saglabāt atslēgas vērtības pāri, klients aprēķina atslēgas hash vērtību, izmantojot iepriekš noteiktu hash funkciju. Pēc tam šī hash vērtība tiek kartēta uz vienu no 16 384 hash laika nišām. Pēc tam dati tiek glabāti Redis mezglā, kuram pieder Hash slots.
4. Replikācija: katrai hash slotā ir primārais mezgls, kas ir atbildīgs par lasīšanas/rakstīšanas pieprasījumu apkalpošanu. Turklāt ir viens vai vairāki kopijas mezgli, kas uztur datu kopiju par augstu pieejamību.
5. Automātiska pārveidošana: Tā kā mezgli tiek pievienoti vai noņemti no klastera, hash slotu uzdevumi tiek automātiski līdzsvaroti, lai nodrošinātu vienmērīgu datu sadalījumu un ielādi visā klasterī.
Redis klasteru šarnēšanas priekšrocības
1. Mērogojamība: sadalot datus vairākos mezglos, Redis klasteris var mērogot, lai apstrādātu lielu datu daudzumu un lielu caurlaidspēju.
2. Augsta pieejamība: Hash slotu replikācija primārajā un replikas mezglos nodrošina augstu pieejamību, jo klienti var turpināt piekļūt datiem, pat ja daži mezgli neizdodas.
3. Caurspīdīga klienta piekļuve: Hash slota kartēšanu pārredzami apstrādā Redis klasteris, tāpēc klienti var piekļūt datiem, nezinot sīkāku informāciju par pamatā esošo šarnojumu.
4. Automātiskā pārvaldība: Redis Cluster automatizē sharding pārvaldību, ieskaitot datu līdzsvarošanu, kad klasteris aug vai sarūk.
Kopumā Redis klastera sharding arhitektūra ļauj tai nodrošināt ļoti pielāgojamu, pieejamu un viegli pārvaldāmu izplatītu datu krātuvi, padarot to labi piemērotu lietojumprogrammām ar lieliem datu apjomiem vai augstām caurlaidspējas prasībām.
Atsauces:[1] https://scalegrid.io/blog/intro-to-redis-sharding/
[2] https://redis.io/reis-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