Redis / Valkey günlük işletim ve arıza senaryoları (Cluster ve Sentinel)
RedisSeviye: İleriSüre: 5 dk (kontrol) – 1 saat (reshard)Kurulum değil: kurulu bir Redis Cluster'ı ya da Sentinel'li master/replica yapısını günlük olarak yönetmek ve bozulduğunda kurtarmak için senaryo bazlı runbook (Redis 7.2, Redis 8 ve Valkey). Cluster: sağlık kontrolü, node ekleme/çıkarma, rebalance/reshard, elle failover (FORCE/TAKEOVER farkı), arızalı node'u değiştirme ve --cluster fix. Sentinel: durum ve quorum, SENTINEL FAILOVER, node ekleme/çıkarma ve SENTINEL RESET, ayar değişikliği. İkisinde de bellek baskısı ve büyük/sıcak anahtar teşhisi. Ne yapacağınızı bilmiyorsanız sağlık kontrolüyle başlayın; yedekten geri dönüş ve güvenlik sıkılaştırması ayrı Redis rehberlerindedir.
Yapı: Redis Cluster (3+ master + replica'lar) ya da Sentinel (1 master + replica'lar + 3 Sentinel)
Senaryolar
- Cluster sağlık kontrolü (--cluster check, CLUSTER INFO / NODES) — Salt-okur: tüm slot'lar kapsanmış mı, node'lar aynı yapılandırmada mı, düşen (fail) node ya da replica'sız master var mı. Ne yapacağınızdan emin değilseniz buradan başlayın.
- Cluster'a node ekle (master ya da replica) — Yeni instance (cluster-enabled yes, boş) hazır: cluster'a master olarak eklenip slot alır ya da bir master'ın replica'sı olur. Kesinti yok.
- Cluster'dan node çıkar (slot'ları boşalt + del-node) — Bir master ya da replica emekliye ayrılıyor: master'ın slot'ları diğer master'lara taşınır, sonra node cluster'dan çıkarılır. Kesinti yok; taşıma sırasında ASK yönlendirmesi olur.
- Slot'ları yeniden dağıt (rebalance / reshard) — Master'lar arasında slot ya da bellek dengesiz, yeni master slot almadı ya da belirli sayıda slot bir master'dan diğerine taşınacak.
- Elle failover: replica'yı master yap (CLUSTER FAILOVER, FORCE, TAKEOVER) — Master'ın sunucusunda bakım yapılacak (planlı, veri kaybı yok) ya da master erişilemez ve otomatik failover olmadı (FORCE / TAKEOVER; veri kaybı riski).
- Arızalı master'ı / node'u değiştir (FORGET, yeni replica, --cluster fix) — Bir node'un sunucusu kalıcı olarak kayıp: replica'sı master olduysa eski node unutturulur ve yerine yeni replica eklenir; replica'sı yoksa slot'lar sahipsiz kalır ve --cluster fix ile kapatılır (o slot'lardaki veri kayıp).
- Sentinel durumu: master, replica'lar, Sentinel'ler, quorum — Salt-okur: Sentinel'lerin gördüğü master adresi, replica'lar, diğer Sentinel'ler, CKQUORUM ve son failover olayları. Sentinel'li yapıda ne yapacağınızdan emin değilseniz buradan başlayın.
- Sentinel ile elle failover (SENTINEL FAILOVER) — Master sunucusunda bakım yapılacak: Sentinel en uygun replica'yı master yapar, diğer replica'ları ve istemcileri yeni master'a yönlendirir. Kesinti 1–2 sn; master çalışırken veri kaybı yok.
- Sentinel ortamında node ekle / çıkar / değiştir (SENTINEL RESET) — Bir replica ya da Sentinel kalıcı olarak kaldırıldı ya da yeni eklendi: yeni replica REPLICAOF ile bağlanır, Sentinel'lerin eski kayıtları SENTINEL RESET ile temizlenir.
- Quorum ve Sentinel ayarlarını değiştir (SENTINEL SET) — Sentinel sayısı değişti ya da failover çok geç/çok erken tetikleniyor: quorum, down-after-milliseconds, failover-timeout, parallel-syncs tüm Sentinel'lerde değiştirilir.
- Bellek baskısı: kullanım, fragmentation, eviction teşhisi — used_memory maxmemory'ye yaklaştı, 'OOM command not allowed' hatası, eviction artıyor, RSS beklenenden büyük ya da replica/AOF tamponları şişti. Teşhis salt-okurdur; çözüm seçenekleri ayrıca anlatılır.
- Büyük ve sıcak anahtarları bul (--bigkeys, --memkeys, --hotkeys) — Tek bir node'un belleği ya da CPU'su diğerlerinden yüksek, gecikme sıçramaları var, DEL uzun sürüyor: en büyük ve en çok erişilen anahtarlar bulunur ve güvenli şekilde temizlenir (UNLINK).
Başlamadan önce
- Yönetim sunucusunda … kurulu (… ile gelir, /usr/bin/…) ve …… instance'ına…tüm cluster node'larına hem istemci portundan hem cluster bus portundan (port + 10000)…Sentinel'lere (…) ve Redis'e (…)… erişim var.
- … parolası (requirepass / masterauth) elinizde; adımlarda sorulur ya da REDIS_PASS ortam değişkeninden alınır. ACL kullanıyorsanız kullanıcının +@admin (cluster/sentinel komutları) ve +@keyspace yetkisi olmalı.
- Değişiklik kaydı açıldı, uygulama ekibi bilgilendirildi. Failover ve slot taşıma istemcilerde kısa süreli MOVED/ASK yönlendirmesi ya da bağlantı kopması yaratabilir; cluster farkındalığı olan (cluster-aware) istemciler bunları kendiliğinden izler.
- Yeni instance … Redis Cluster kurulum rehberindeki gibi hazır: aynı … sürümü, cluster-enabled yes, aynı requirepass/masterauth, boş veri dizini (eski nodes-.conf, RDB/AOF yok), firewall'da istemci ve bus portu (port + 10000) açık.
Rehberin aşamaları
- Durum: slot kapsamı, node'lar ve yapılandırma uyumu (salt-okur) — Cluster'ı denetle (--cluster check) · Node'ları, rolleri ve replica dağılımını göster · Sonucu yorumla
- 1. Teşhis: yeni node boş ve erişilebilir mi? — Yeni node'u ve cluster'ı kontrol et
- 2. Uygulama: node'u ekle — Node'u cluster'a ekle (--cluster add-node) · Slot'ları yeni master'a dağıt (rebalance) · Yeni master için replica planla
- 3. Doğrulama — Cluster'ı ve yeni node'u doğrula
- 1. Teşhis: node master mı, slot'u var mı? — Çıkarılacak node'un rolünü ve slot'larını gör
- 2. Uygulama: slot'ları boşalt ve node'u çıkar — Master'ın slot'larını diğer master'lara taşı · Node'u cluster'dan çıkar (--cluster del-node) · Çıkarılan sunucuda servisi devre dışı bırak
- 3. Doğrulama — Cluster'ı doğrula
- 1. Teşhis: mevcut dağılım — Master başına slot, anahtar ve bellek
- 2. Uygulama — …Slot'ları eşitle (rebalance)…… slot'u taşı (reshard)…
- 1. Teşhis — Replica'nın rolünü ve master bağlantısını gör
- 2. Uygulama — Failover'ı başlat (CLUSTER FAILOVER… FORCE… TAKEOVER…)
- 3. Doğrulama — Yeni yapıyı doğrula
- 1. Teşhis: kayıp node ve slot kapsamı — Fail durumundaki node'ları ve sahipsiz slot'ları gör
- 2. Uygulama: kayıp node'u unuttur — Kayıp node'u tüm node'lara unuttur (CLUSTER FORGET) · Sahipsiz slot'ları kapat (--cluster fix) · Yeni node'u replica olarak ekle
- 3. Doğrulama ve sonrası — Cluster'ı doğrula
- Durum: master, replica'lar, Sentinel'ler (salt-okur) — Sentinel'in gördüğü master ve quorum · Replica'ları ve diğer Sentinel'leri listele · Son failover olaylarını Sentinel logunda ara
- 1. Teşhis — Quorum ve replica'ların hazır olduğunu doğrula
- 2. Uygulama — Failover'ı başlat (SENTINEL FAILOVER)
- 3. Doğrulama — Yeni master'ı ve replica'ları doğrula
- 1. Teşhis — Sentinel'lerin bildiği replica ve Sentinel sayıları
- 2. Uygulama — Yeni replica'yı master'a bağla · Çıkarılan replica'nın servisini kapat · Yeni Sentinel'i başlat · Çıkarılan Sentinel'i kapat · Tüm Sentinel'lerde SENTINEL RESET
- 3. Doğrulama — Sayıları ve quorum'u tekrar kontrol et
- 1. Teşhis — Mevcut ayarları her Sentinel'de gör
- 2. Uygulama — … değerini tüm Sentinel'lerde … yap
- 1. Teşhis: bellek, limit ve eviction — Bellek kullanımını ve limiti gör (INFO memory) · MEMORY DOCTOR ve MEMORY STATS · Bellek ayarlarını gör
- 2. Çözüm seçenekleri — Duruma göre çözüm
- 1. Teşhis: büyük ve sıcak anahtarlar — Tür başına en büyük anahtarlar (--bigkeys) · Belleğe göre en büyük anahtarlar (--memkeys) · Sıcak anahtarlar (--hotkeys) · Bir anahtarın boyutunu ve türünü incele
- 2. Çözüm — Büyük anahtarı güvenle sil (UNLINK)