Keydra nedir?
Anahtar-değer sunucuları için ekipçe kullanılan bir web konsolu: kimlik bilgileri sunucuda durur, erişim kişi ve hedef bazında belirlenir.
Keydra nedir#
Keydra, anahtar-değer sunucuları için bir web konsoludur. Bir sunucunun adresini ve kimlik bilgilerini girersiniz; Keydra o sunucu üzerinde günlük işler için gereken her şeyi sunar: anahtarlara göz atma, değer okuma ve yazma, komut çalıştırma, trafiği izleme, sunucunun kendi istatistiklerini okuma ve iki sunucu arasında veri taşıma.
Keydra bir veritabanı değildir; verilerinizi saklamaz. Sakladıkları şunlardır: her sunucuya nasıl erişileceği, kimin ne yaptığı ve zamanlanmış işlerin ayarları. Ekranda gördüğünüz her şey, siz istediğiniz anda hedeften okunur.
Masaüstü araçlardan farkı#
Masaüstü bir istemci tek bir dizüstünde çalışır, bağlantı listesini o dizüstünün ev dizininde tutar ve yalnızca o dizüstünün ulaşabildiği sunuculara ulaşır. Aynı erişime ikinci bir kişi ihtiyaç duyana kadar bu yeterlidir.
Keydra bir kez kurulur, herkes aynı kurulumu kullanır:
- Çok kullanıcılı
-
Herkes kendi hesabıyla oturum açar. Kimin neyi yapabileceğini yöneticinin tanımladığı yetkiler belirler; denetim günlüğü de kimin ne yaptığını kaydeder.
- Kimlik bilgileri tek yerde
-
Hedef parolaları sunucuda şifreli saklanır ve API bunları hiçbir zaman geri döndürmez — ne arayüze ne de başka bir yere. Ekibe yeni biri katıldığında ona parola göndermeniz gerekmez.
- Ağ erişimi
-
Keydra, sunuculara erişebilen bir yerde çalışır. Atlama sunucusu arkasındaki özel ağda duran hedeflere, bir kez tanımladığınız SSH tüneli üzerinden erişilir; o tünele arkasındaki bütün hedefler işaret eder.
- Kesintisiz işler
-
Zamanlanmış işler, uyarı kuralları ve yedeklemeler, tarayıcı açık olsun ya da olmasın çalışmayı sürdürür.
Hangi sunucularla çalışır#
Redis, Valkey ve aynı protokolü konuşan türevlerle — KeyDB, Dragonfly, Garnet — tek bir motor üzerinden; bu motor hedefin hangi türevi ve hangi sürümü çalıştırdığını kendisi tespit eder ve arayüzde gösterir. Aerospike ve TiKV ile ise ayrı birer motor üzerinden, çünkü ikisi de o protokolü konuşmaz ve ikisi de anahtarı aynı biçimde tutmaz.
Hepsi Keydra’nın içinde aynı arayüzün arkasında durur; bu yüzden bir sayfa protokollerle değil, anahtarlar ve sunucularla ilgilenir — ve bir deponun sahip olmadığı yetenek, kullanınca başarısız olan bir işlem değil, arayüzde bulunmayan bir şeydir. Bkz. Desteklenen hedefler.
Desteklenen hedefler#
İki ayrı soru var ve bunlar aynı soru değil. Depo ne konuşuyor? sorusu, Keydra’nın onunla hangi motor üzerinden konuşacağını, dolayısıyla neler sunabileceğini belirler. Nasıl kurulmuş? sorusu ise tek bir adresin arkasında kaç makine olduğunu belirler.
Depo ne konuşuyor#
| Ad | Açıklama |
|---|---|
|
Redis, Valkey ve aynı protokolü konuşan türevler — KeyDB, Dragonfly, Garnet. Hepsine tek bir motor hizmet eder ve bir hedefin hangi türü çalıştırdığı yapılandırmayla değil, çalışma anında algılanarak belirlenir. Keydra’nın sunduğu her şey burada sunulur: türler, yaşam süresi, komut konsolu, Pub/Sub, sunucu istatistikleri, cluster ve sentinel topolojisi. |
|
Kendi protokolünü konuşan ve anahtarı farklı biçimde tutan Aerospike. Bir kayıt, tek bir metinle değil; bir ad alanı, bir küme ve bir kullanıcı anahtarıyla tanımlanır — ve kullanıcı anahtarı yalnızca onu yazan uygulama istediğinde saklanır. Öntanımlı davranış saklamamaktır; bu yüzden mevcut verinin çoğunda gösterilecek bir ad yoktur. Çalışan şeyler: kümeye göre göz atma, bir kaydın bin’lerini okuma ve yazma, bir de süresi. |
|
Düz bir bayt anahtar uzayı olan TiKV. Anahtarları Keydra’nınkine Aerospike’ınkinden daha iyi oturur — bayt dizileri oldukları için ad alanı ağacı ve önek globları çeviri gerektirmeden çalışır, bir globun düz öneki de TiKV’nin gerçekten sunduğu aralık taramasına dönüşür. Bunun üstündeki her şeyden yoksundur: tür yok, sunucu istatistiği yok, komut dili yok, Pub/Sub yok. Yayınlanan imaj bu motoru içermez. |
Her depo tek bir arayüzün arkasında durur; bu yüzden motorun üstündeki sayfalar protokollerle değil, anahtarlar ve sunucularla ilgilenir. Başka bir depo eklemek, sayfaları değiştirmek değil, bir motor eklemek demektir.
Komut konsolu ve Pub/Sub, ilk çağrıda hata veren yöntemler değil, motorda isteğe bağlı yeteneklerdir; bu yüzden komut dili olmayan bir depo bunu arayüzde söyler: sekme orada değildir. Bir TiKV hedefinde Konsol ve Pub/Sub sekmelerinin bulunmamasının, bir Redis hedefinde ikisinin de bulunmasının nedeni budur.
TiKV hedefinde TTL sütununun boş olması da aynı akıl yürütmenin sonucudur. TTL açık başlatılmamış bir TiKV kümesinden bir anahtarın yaşam süresini istemek hata döndürmez — sunucu panikler ve süreç ölür. Bu yüzden bu motor hiç sormaz; boş sütun bir eksiklik değil, bilinçli bir rettir.
Nasıl kurulmuş#
| Ad | Açıklama |
|---|---|
|
Tek adreste tek sunucu. En yaygın durum. |
|
Redis ya da Valkey kümesi. Keydra düğümleri ve slot aralıklarını hedeften keşfeder ve topoloji sayfasında gösterir. |
|
Sentinel kurulumu. Profil master adını taşır; Keydra master’ın güncel adresini Sentinel’e sorar, böylece devir sırasında değişen adresi elle girmeniz gerekmez. |
Bunlar bir RESP hedefini tanımlar. Keydra, yük devretmede değişen bir adresle yetinmek yerine sentinel’e master’ın şu anda nerede olduğunu sorar; bir cluster’ın düğümlerini ve slot aralıklarını da hedefin kendisinden keşfeder — bkz. Cluster ve sentinel topolojisi.
Türev tespiti bir koşul değil, bilgidir#
RESP hedefleri için Keydra, sunucunun INFO server çıktısını okur ve bulduğu türevi
ile sürümü gösterir. Tanımadığı bir sunucuyu reddetmez; karşısında ne olduğunu size bildirir.
Bu yanıtla yaptığı şey, hedefin kendi komut tablosunu okuyup o türevin desteklemediği işlemleri gizlemek ya da kapatmaktır. Bu soruyu yanıtlamayan bir hedef Sorulamadı olarak işaretlenir ve ona her şey sunulur; çünkü desteklenmeyen bir işlemin kullanıldığı yerde başarısız olması, sunucunun aslında yapabildiği bir işlemi sessizce gizlemekten iyidir.
