infolightbulb_outlinenew_releasesreportwarning

Redis’in Yüksek Bulunur Çalıştırılması

Begüm Tuncer

Redis Nedir?

  • Anahtar/değer deposu (key/value store)

  • Veri yapısı sunucusu (data structure server)

  • Veri tipi string, hash, list, set, bitmap…​

  • Bellek kullanımlı (in-memory), kalıcılık mümkün (persistence)

  • Çok hızlı

  • Cache, kuyruk, saydırma, pub/sub…​

Redis’te Yüksek Bulunurluk

  • Çoklama, yedekleme (master-slave replication)

  • Redis master geçişi (master failover, Sentinel)

  • Yük dengeleme ve kesintisiz master erişimi (Haproxy)

  • IP hatası durumunda IP geçişi (IP failover, Keepalived)

  • Veriyi parçalama (sharding, Twemproxy)

Replication

  • Asenkron master-slave replication

  • slaveof <master-ip> <master-port>

  • Sorguları load balance etmek için

  • Güncel standby redis sunucu tutmak için

  • Bakım vb çalışmalar için

Master geçişi - Sentinel

  • Sentinel: Redis yönetimi yapan dağıtık sistem

  • İzleme, uyarma, failover ve ayar sağlama

  • Otomatik failover prosedürü:

    • Sentinel korosu

    • Gossip, quorum, leader election algoritmaları

    • Yeni master belirleme aşamaları

Kesintisiz master erişimi - HaProxy

  • Redis master standart yapıda SPOF!

  • Failover oldu yeni master nerede?

  • HaProxy ile istemciden gelen istek mevcut Redis master kimse ona gönderilmeli.

  • Anahtar kelime: tcp-check

  • İstemcilerin okuma istekleri ise yük dengelenerek slavelere gidebilir.

IP geçişi - Keepalived

  • HaProxy üzerinden Redis master’a ulaşılabiliyor.

  • İstemci tek Redis sorguluyorsa, bir HaProxy’ye ulaşılamaması sorun.

  • Keepalived ile Virtual IP.

Sharding - Twemproxy - 1

  • Redis henüz küme yapıda değil. (Redis Cluster, 3.x’de, kararlı değil)

  • Yatay ölçekleme gerektiğinde?

  • İstemciler ile Redis masterları arasına Twemproxy

  • Twemproxy veriyi Redis’ler arasında otomatik parçalıyor

Sharding - Twemproxy - 2

redis 1

Sonuç

  • Yüksek bulunur da olsa gözlemek iyidir

  • Nagios, metrik takibi

Sorular

  • ?