Redis Cluster, verilerinizi otomatik olarak birden çok düğüme dağıtan ve yüksek kullanılabilirlik sağlayan bir mimaridir. Özellikle büyük ölçekli uygulamalar için vazgeçilmez bir çözüm sunar. Bu yazıda Redis Cluster kurulumunu ve ölçekleme adımlarını adım adım anlatacağız. Eğer Redis’i tek sunucuda kullanıyorsanız, Cluster’a geçiş size daha fazla esneklik ve hata toleransı kazandıracak.
Redis Cluster Nedir?
Redis Cluster, verileri 16384 adet hash slot’una böler ve bu slotları düğümler arasında dağıtır. Her düğüm yalnızca kendine ait slotları yönetir. Örneğin; 3 düğümlü bir cluster'da slotlar yaklaşık olarak 5461, 5461 ve 5462 şeklinde paylaştırılır. Bu dağıtım sayesinde anahtarlar otomatik olarak doğru düğüme yönlendirilir.
Cluster’ın Avantajları
- Yüksek performans: İşlemler tek bir noktaya yüklenmez, yük dağıtılır.
- Otomatik parçalama: Verilerinizi manuel olarak bölmek zorunda kalmazsınız.
- Yüksek kullanılabilirlik: Her düğüm için replica (yedek) düğüm tanımlayarak arıza durumunda hizmet kesintisini önleyebilirsiniz.
- Kolay ölçekleme: Düğüm ekleyip slotları yeniden dağıtarak kapasiteyi artırabilirsiniz.
Redis Cluster Kurulum Adımları
1. Ortam Hazırlığı
En az 3 ana düğüm (master) ve önerilen yapılandırmada her master için bir replica olacak şekilde toplam 6 düğüm kullanmanızı öneririm. Her bir düğüm için ayrı bir Linux sunucu (veya Docker konteyneri) ayırın. Örneğin, aşağıdaki IP’leri kullanalım:
- 10.0.0.1:7000 (master1)
- 10.0.0.2:7000 (master2)
- 10.0.0.3:7000 (master3)
- 10.0.0.1:7001 (replica1)
- 10.0.0.2:7001 (replica2)
- 10.0.0.3:7001 (replica3)
Her düğümde Redis’i kaynak koddan derleyin veya paket yöneticisiyle kurun. Ardından her bir düğüm için redis.conf dosyasını oluşturun. Cluster modunu etkinleştirmek için aşağıdaki ayarları ekleyin:
port 7000 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 5000 appendonly yes
2. Düğümleri Başlatma
Her düğüm için Redis sunucusunu başlatın. Örneğin:
redis-server /path/to/redis-7000.confDoğrulama için redis-cli -p 7000 ping komutunu çalıştırın. Her düğüm PONG yanıtı vermeli.
3. Cluster’ı Oluşturma
redis-cli aracı ile cluster’ı kurabilirsiniz. Aşağıdaki komut, 3 master ve 3 replica içeren bir cluster oluşturur:
redis-cli --cluster create 10.0.0.1:7000 10.0.0.2:7000 10.0.0.3:7000 10.0.0.1:7001 10.0.0.2:7001 10.0.0.3:7001 --cluster-replicas 1Bu komut, master'ları seçip her birine bir replica atar. İşlem sırasında slot dağıtımını onaylamanız istenir. “yes” yazın ve Enter’a basın.
4. Cluster Durumunu Kontrol Etme
Kurulumu doğrulamak için aşağıdaki komutu kullanın:
redis-cli --cluster check 10.0.0.1:7000Çıktıda tüm düğümlerin durumunu, slot dağılımını ve replica ilişkilerini görebilirsiniz. Ayrıca cluster info ve cluster nodes komutlarıyla da detaylı bilgi alabilirsiniz.
Ölçekleme Adımları
Yeni Düğüm Ekleme
Diyelim ki mevcut cluster’ınıza yeni bir master düğüm eklemek istiyorsunuz. Yeni bir sunucu hazırlayın (örneğin 10.0.0.4:7000) ve Redis’i cluster modunda başlatın. Ardından aşağıdaki komutla düğümü cluster’a ekleyin:
redis-cli --cluster add-node 10.0.0.4:7000 10.0.0.1:7000Bu işlemden sonra yeni düğüm “handshake” durumunda olur. Henüz hiçbir slotu yoktur. Slotları yeniden dengelemek için aşağıdaki komutu çalıştırın:
redis-cli --cluster rebalance 10.0.0.1:7000Önemli: Rebalance işlemi slotları tüm düğümlere eşit dağıtmaya çalışır. Eğer belirli düğümlere daha fazla slot vermek isterseniz --cluster-weight parametresini kullanabilirsiniz.
Replica Ekleme
Yeni bir replica düğümü eklemek için de benzer bir adım izlenir. Önce düğümü başlatın, ardından aşağıdaki komutla ekleyin:
redis-cli --cluster add-node 10.0.0.4:7001 10.0.0.1:7000 --cluster-slaveEğer belirli bir master'ın replicası olmasını istiyorsanız --cluster-slave yerine --cluster-slave --cluster-master-id kullanabilirsiniz.
Düğüm Çıkarma
Bir düğümü cluster’dan çıkarmak için önce o düğümdeki tüm slotları boşaltmalısınız. Aşağıdaki komut, kaynak düğümdeki slotları hedef düğüme taşır:
redis-cli --cluster reshard 10.0.0.1:7000 --cluster-from --cluster-to --cluster-slotsSlotlar boşaltıldıktan sonra düğümü cluster’dan kaldırın:
redis-cli --cluster del-node 10.0.0.1:7000Performans ve Dikkat Edilmesi Gerekenler
Redis Cluster kullanırken aşağıdaki noktalara dikkat etmeniz önemlidir:
- İstemci desteği: Kullandığınız Redis istemci kütüphanesinin Cluster’ı desteklediğinden emin olun. Örneğin, Jedis, StackExchange.Redis veya redis-py gibi popüler kütüphaneler Cluster modunda çalışabilir.
- Ağ gecikmesi: Düğümler arasındaki ağ gecikmesi performansı etkileyebilir. Düşük gecikme süreleri için aynı veri merkezinde barındırma yapın.
- Yedekleme: Cluster yapısı yedekleme işlemlerini karmaşık hale getirebilir. Verilerinizi düzenli olarak RDB veya AOF dosyalarıyla yedekleyin.
- İzleme: Redis’in INFO komutu ve redis-cli --cluster check ile periyodik kontroller yaparak sağlık durumunu izleyin.
Sonuç
Redis Cluster kurulumu ve ölçeklemesi doğru adımlarla yapıldığında size esnek, yüksek performanslı ve hataya dayanıklı bir veritabanı altyapısı sunar. İster 3 düğümle başlayın, ister 100 düğüme kadar genişletin; Redis Cluster, büyüyen uygulamalarınız için ideal bir tercihtir. HostingServer.com.tr olarak, Redis Cluster yapılandırmanızda destek almak isterseniz bize her zaman ulaşabilirsiniz.