Redis Cluster'da veri paylaşımı şu şekilde çalışır:
Redis Küme Parçalaması
Redis Cluster, verileri birden çok Redis düğümünde otomatik olarak bölümlemek için yerleşik bir parçalama mekanizması kullanır. Bunun nasıl çalıştığının temel yönleri şunlardır:
1. Anahtar Alanı Bölümlendirme: Redis Kümesi'ndeki anahtar alanının tamamı 16.384 karma yuvasına bölünmüştür. Bu karma yuvaları, verilerin küme boyunca dağıtılmasından sorumludur.
2. Karma Yuvaları Ataması: Kümedeki her Redis düğümüne 16.384 karma yuvasının bir alt kümesi atanır. Karma yuvalarının düğümlere atanması bir karma işlevi aracılığıyla yapılır.
3. Veri Yerleştirme: Bir müşteri bir anahtar/değer çiftini depolamak istediğinde, önceden tanımlanmış bir karma işlevini kullanarak anahtarın karma değerini hesaplar. Bu karma değeri daha sonra 16.384 karma yuvasından birine eşlenir. Veriler daha sonra söz konusu karma yuvasına sahip olan Redis düğümünde depolanır.
4. Çoğaltma: Her karma yuvası için okuma/yazma isteklerinin yerine getirilmesinden sorumlu bir birincil düğüm vardır. Ek olarak, yüksek kullanılabilirlik için verilerin bir kopyasını saklayan bir veya daha fazla çoğaltma düğümü vardır.
5. Otomatik Yeniden Paylaşım: Düğümler kümeye eklendikçe veya kümeden çıkarıldıkça, küme genelinde veri ve yükün eşit dağılımını sağlamak için karma yuvası atamaları otomatik olarak yeniden dengelenir.
Redis Küme Parçalamanın Avantajları
1. Ölçeklenebilirlik: Redis Cluster, verileri birden fazla düğüme dağıtarak büyük miktarda veriyi ve yüksek verimi işleyecek şekilde ölçeklenebilir.
2. Yüksek Kullanılabilirlik: Karma yuvalarının birincil ve kopya düğümler arasında çoğaltılması, bazı düğümler arızalansa bile istemcilerin verilere erişmeye devam edebilmesi nedeniyle yüksek kullanılabilirlik sağlar.
3. Şeffaf İstemci Erişimi: Karma yuvası eşlemesi, Redis Kümesi tarafından şeffaf bir şekilde gerçekleştirilir, böylece istemciler, temel parçanın ayrıntılarını bilmeye gerek kalmadan verilere erişebilir.
4. Otomatik Yönetim: Redis Cluster, küme büyüdükçe veya küçüldükçe verilerin yeniden dengelenmesi de dahil olmak üzere parçalama yönetimini otomatikleştirir.
Genel olarak Redis Cluster'ın parçalama mimarisi, yüksek düzeyde ölçeklenebilir, kullanılabilir ve yönetimi kolay bir dağıtılmış veri deposu sunmasına olanak tanır ve bu da onu büyük veri hacimlerine veya yüksek aktarım hızı gereksinimlerine sahip uygulamalar için çok uygun hale getirir.
Alıntılar:[1] https://scalegrid.io/blog/intro-to-redis-sharding/
[2] https://redis.io/redis-enterprise/teknoloji/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