Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Bagaimana cara kerja sharding data di Redis Cluster


Bagaimana cara kerja sharding data di Redis Cluster


Begini cara kerja sharding data di Klaster Redis:

Pembagian Klaster Redis

Redis Cluster menggunakan mekanisme sharding bawaan untuk secara otomatis mempartisi data di beberapa node Redis. Aspek utama cara kerjanya adalah:

1. Partisi Keyspace: Seluruh keyspace di Klaster Redis dibagi menjadi 16.384 slot hash. Slot hash ini bertanggung jawab untuk mendistribusikan data ke seluruh cluster.

2. Penetapan Slot Hash: Setiap node Redis di cluster diberi subset dari 16.384 slot hash. Penugasan slot hash ke node dilakukan melalui fungsi hash.

3. Penempatan Data: Saat klien ingin menyimpan pasangan nilai kunci, klien menghitung nilai hash kunci menggunakan fungsi hash yang telah ditentukan sebelumnya. Nilai hash ini kemudian dipetakan ke salah satu dari 16.384 slot hash. Data tersebut kemudian disimpan di node Redis yang memiliki slot hash tersebut.

4. Replikasi: Untuk setiap slot hash, terdapat node utama yang bertanggung jawab untuk melayani permintaan baca/tulis. Selain itu, ada satu atau lebih node replika yang menyimpan salinan data untuk ketersediaan tinggi.

5. Pembagian Ulang Otomatis: Saat node ditambahkan atau dihapus dari cluster, penetapan slot hash secara otomatis diseimbangkan kembali untuk memastikan pemerataan data dan beban di seluruh cluster.

Manfaat Sharding Klaster Redis

1. Skalabilitas: Dengan mendistribusikan data ke beberapa node, Klaster Redis dapat melakukan penskalaan untuk menangani data dalam jumlah besar dan throughput tinggi.

2. Ketersediaan Tinggi: Replikasi slot hash di seluruh node utama dan replika memastikan ketersediaan tinggi, karena klien dapat terus mengakses data meskipun beberapa node gagal.

3. Akses Klien Transparan: Pemetaan slot hash ditangani secara transparan oleh Klaster Redis, sehingga klien dapat mengakses data tanpa perlu mengetahui detail sharding yang mendasarinya.

4. Manajemen Otomatis: Klaster Redis mengotomatiskan pengelolaan sharding, termasuk menyeimbangkan kembali data seiring pertumbuhan atau penyusutan cluster.

Secara keseluruhan, arsitektur sharding dari Redis Cluster memungkinkannya menyediakan penyimpanan data terdistribusi yang sangat skalabel, tersedia, dan mudah dikelola, sehingga cocok untuk aplikasi dengan volume data besar atau persyaratan throughput tinggi.

Kutipan:
[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