"Enter"a basıp içeriğe geçin

Sunucu Ortamında Redis Cluster Nasıl Kurulur?

Redis Cluster, veriyi birden fazla sunucuya dağıtarak daha yüksek performans ve daha güvenli bir yapı sağlar. Amaç, Redis’i tek sunucudan çıkarıp sharding, yüksek erişilebilirlik ve otomatik failover özelliklerine sahip bir küme hâline getirmektir.
Bu yazıda Redis Cluster’ın ne olduğunu netleştirelim ve sıfırdan bir kurulum yapalım.

Redis Cluster Nasıl Çalışır?

Redis Cluster veriyi 16384 hash slot’a böler ve bu slotları farklı sunuculara dağıtır.

  • Redis daha fazla RAM ve CPU kullanabilir.
  • Tek node çökse bile sistem ayakta kalır.
  • Veriler otomatik olarak master–replica yapısında korunur.

Kurulum İçin Hazırlık

Cluster’ı test ortamında kuracağız. Sonra gerçek sunucu kurulumuna da geçeceğiz.

mkdir -p ~/redis-cluster<br>cd ~/redis-cluster
mkdir 7000 7001 7002 7003 7004 7005

Her Node İçin redis.conf dosyası oluşturalım. Bunun için 7000 klasörünün içine bir config dosyası oluşturalım.

nano 7000/redis.conf

İçine şunu ekleyelim

port 7000bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
protected-mode no

Sonra aynı dosyayı diğer portlara göre uyarlayalım. 7001 ve diğer 7002, 7003, 7004, 7005 portları için de ekleyelim.

port 7001
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes<br>daemonize yes
protected-mode no

Node’ları Başlatalım

Her node’u sırayla çalıştıralım.

redis-server 7000/redis.conf
redis-server 7001/redis.conf
redis-server 7002/redis.conf
redis-server 7003/redis.conf
redis-server 7004/redis.conf
redis-server 7005/redis.conf

Çalıştıklarını kontrol etmek için aşağıdaki komutu çalıştıralım.

ps aux | grep redis

Cluster’ı Oluşturalım

Şimdi tüm node’ları bir cluster hâline getirelim ve kontrol edelim.

redis-cli --cluster create \
127.0.0.1:7000 \
127.0.0.1:7001 \
127.0.0.1:7002 \
127.0.0.1:7003 \
127.0.0.1:7004 \
127.0.0.1:7005 \
--cluster-replicas 1

Komut senden onay isterse yes yazıp devam edelim.

redis-cli -c -p 7000 cluster info

Örnek Bir Key Yazıp Okuyalım

Cluster doğru çalışıyor mu test edelim. Komutu farklı portlardan çalıştırsan bile cluster seni otomatik olarak doğru node’a yönlendirir.

redis-cli -c -p 7000 set user:1 "Ali"
redis-cli -c -p 7001 get user:1

Production (Gerçek Sunucu) Redis Cluster Kurulumu

Gerçek bir ortamda Redis Cluster kurarken her node’un ayrı bir sunucuda çalışması gerekir. Böylece hem veri dağılımı sağlıklı olur hem de bir master node düştüğünde replica devreye girerek sistemi ayakta tutar. En basit ve stabil yapı, 3 fiziksel ya da sanal sunucu üzerinde 3 master + 3 replica şeklinde kurulan yapıdır.

Sunucuya Redis’i kuralım

Ubuntu / Debian için

apt update<br>apt install redis-server -y

CentOS / AlmaLinux için

dnf install redis -y

Kurulumdan sonra her sunucuda cluster modunu aktif hâle getirmemiz gerekiyor. Bunun için /etc/redis/6379.conf dosyasını açalım. İçerisine Redis’in cluster modunda çalışmasını sağlayan temel ayarları ekleyelim.
cluster-enabled yes ile cluster modunu aktif ediyoruz.

nano /etc/redis/6379.conf
port 6379<br>bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 5000
appendonly yes

Son aşamada ise tüm node’ları birbirine bağlayarak cluster’ı oluşturmamız gerekiyor. Bunun için herhangi bir sunucudan redis-cli --cluster create komutunu çalıştırıyoruz. Komutun içerisine tüm node’ların IP ve port bilgilerini tek tek yazıyoruz:

redis-cli --cluster create \
10.0.0.1:6379 \
10.0.0.2:6379 \
10.0.0.3:6379 \
10.0.0.1:6380 \
10.0.0.2:6380 \
10.0.0.3:6380 \
--cluster-replicas 1

Bu komutu çalıştırdıktan sonra Redis, yazdığın IP ve portlara göre tüm node’ları birbirine bağlar ve 3 master + 3 replica olacak şekilde otomatik bir dağıtım yapar. Ardından hash slot’lar master’lar arasında eşit biçimde paylaşılır ve replica’lar da ilgili master node’lara atanır.

Eğer Redis’i sadece tek sunucuda kullanmak ya da Plesk ortamında devreye almak istiyorsak Plesk Panelde Üzerinde Redis Kurulumu Nasıl Yapılır? rehberine göz atmak yararlı olabilir.

Sık Sorulan Sorular

Cluster’ı kurduktan sonra node ekleyebilir miyim?

Yeni bir node’u çalıştırdıktan sonra redis-cli --cluster add-node komutu ile kümeye dahil edebilirsiniz.

Cluster modunda multi-key komutlar nasıl çalışır?

MGET, MSET, SUNION gibi komutlar yalnızca aynı hash slot içindeki key’lerde sorunsuz çalışır. Eğer farklı slot’lardaysa hata alırsınız.. Bu problemi çözmek için key’leri “hash tag” yöntemini kullanarak aynı slot’a düşürebilirsiniz.
user:{100}:name{100} kısmı slot belirler.

Cluster config dosyalarını manuel düzenlemeli miyim?

nodes-*.conf dosyalarını Redis otomatik yönetir. Bu dosyalara elle müdahale etmek cluster yapısını bozabilir. Sadece redis.conf üzerinde değişiklik yapılmalıdır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir