Íme, hogyan működik az adatfelosztás a Redis Clusterben:
Redis Cluster Sharding
A Redis Cluster beépített felosztási mechanizmust használ az adatok automatikus particionálására több Redis-csomópont között. Ennek működésének fő szempontjai a következők:
1. Keyspace-particionálás: A Redis-fürt teljes kulcstere 16 384 hash-helyre van felosztva. Ezek a hash-helyek felelősek az adatok fürtön belüli elosztásáért.
2. Hash Slots Asignment: A fürt minden Redis csomópontjához hozzá van rendelve a 16 384 hash slot egy részhalmaza. A hash-helyek csomópontokhoz való hozzárendelése egy hash-függvényen keresztül történik.
3. Adatelhelyezés: Ha egy ügyfél kulcs-érték párt akar tárolni, az ügyfél kiszámítja a kulcs hash értékét egy előre meghatározott hash függvény segítségével. Ezt a hash értéket a rendszer a 16 384 hash slot egyikére képezi le. Az adatok ezután azon a Redis-csomóponton tárolódnak, amelyik a hash slot tulajdonosa.
4. Replikáció: Minden hash slothoz tartozik egy elsődleges csomópont, amely az olvasási/írási kérések kiszolgálásáért felelős. Ezenkívül van egy vagy több replika csomópont, amely fenntartja az adatok másolatát a magas rendelkezésre állás érdekében.
5. Automatikus újrafelosztás: Amikor csomópontokat adnak hozzá vagy eltávolítanak a fürtből, a hash-rés-hozzárendelések automatikusan kiegyenlítésre kerülnek, hogy biztosítsák az adatok és terhelés egyenletes eloszlását a fürtben.
A Redis Cluster Sharding előnyei
1. Skálázhatóság: Az adatok több csomópont között történő elosztásával a Redis Cluster méretezhető nagy mennyiségű adat kezelésére és nagy áteresztőképességre.
2. Magas rendelkezésre állás: A hash-helyek replikációja az elsődleges és a replika csomópontok között magas rendelkezésre állást biztosít, mivel az ügyfelek továbbra is hozzáférhetnek az adatokhoz, még akkor is, ha egyes csomópontok meghibásodnak.
3. Átlátszó kliens hozzáférés: A hash slot leképezést a Redis Cluster átláthatóan kezeli, így az ügyfelek anélkül férhetnek hozzá az adatokhoz, hogy ismerniük kellene a mögöttes felosztás részleteit.
4. Automatikus kezelés: A Redis Cluster automatizálja a felosztás kezelését, beleértve az adatok újraegyensúlyozását a fürt növekedésével vagy csökkenésével.
Összességében a Redis Cluster felosztási architektúrája lehetővé teszi, hogy rendkívül méretezhető, elérhető és könnyen kezelhető elosztott adattárat biztosítson, így kiválóan alkalmas nagy adatmennyiséggel vagy nagy átviteli igényű alkalmazásokhoz.
Idézetek:[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