Nedir? Nasıl?

Redis Nedir?

Açılımı Remote Dictionary Server (Uzak Sözlük Sunucusu) olan Redis, milyonlarca hatta milyarlarca satır yoğunluktaki verileri hızlı işleme ve depolama yeteneğine sahip açık kaynak kodlu bir veritabanı sistemidir. Bir çok kişi için veritabanı ünvanını hakettiği tartışılsa da kendi veri saklama modeline sahip olduğu ve başka bir servise ihtiyaç duymadan bu verileri modelleyerek barındırabildiği için veritabanı olarak görüldüğünü belirtmek isterim. Bu makalemizde genel olarak önbellekleme konusundaki başarısı nedeniyle tercih edilen Redis hakkında kısa bilgiler vereceğim.

Redis Nasıl Ortaya Çıktı?

Redis, Salvatore Sanfilippo(Antirez) tarafından LLOOGG adında bir web analitiği yazılımının performansını arttırmak için geliştirildi. Redis’in gelişimine ilham veren olay ise Hacker News adında yazılım konuları için bilgi alışverişi olan sözlükteki bir yorumdu. Bu yorum Paul Graham (Lisp programlama dilinin geliştiricisi) tarafından bazı Lisp programlarının bellekte depolanan verileri diskte de bir günlüğe kaydedebileceğini hakkındaydı. Salvator Sanfilippo bu konudan ilham alarak uygulama yeniden başlatıldığında okunması gereken veri yapılarını günlükten direkt olarak çağırabileceğini düşündü. Bu sayede herhangi bir API bağlantısına gerek duymadan yönetebilecekti. 2009 yılında yayınlanan Redis hızlı bir şekilde popüler olmaya başladı ve VMWare Salvatore Sanfilippo’yu Redis’in daha çok geliştirebilmesi için işe aldı. VMWare Redis projesinin daha hızlı ve daha güçlü bir şekilde geliştirilmesinde yardımcı olabileceğini düşünerek Pieter Noordhuis’i de işe aldı.

Stackoverflow tarafından düzenlenen geliştirici anketinde 2017’den beri Redis en çok sevilen veritabanı ünvanını taşımaya devam ediyor. Geliştirici anketine bu link üzerinden ulaşabilirsiniz: 2021 Developer Survey

Kısaca Redis’in Çalışma Mantığı

Redis’te String, Hash, List, Set ve Sorted Set, Bitmap ve HyperLogLogs gibi bilindik veri tipleri saklanabiliyor. Bu verileri RAM üzerinde tutup okuma/yazma performansını olabilecek en maksimum düzeye çıkarıyor ve servisin yeniden başlatılmasından sonra bilgilerin yok olmaması için arka planda sabit disk üzerine kaydediyor.

Cluster (yedekli çalışma) desteğine sahiptir.

Önbellekleme (çağırılacak verileri önbelleğe alarak performans artışı yaratır), pub/sub işlemi (yayınlayıcı ve abone sistemi, belirlemiş olduğunuz kanallara abone olan kullanıcılara mesaj göndermeyi sağlar), session yönetimi (oturum açma bilgileri, oyun veya sosyal medyada bulunan puan tabloları, e-ticaret sitelerinde bulunan sepet bölümü gibi bölümlerin kayıtlarını tutar), Queues (Arka planda uzun sürecek işlemleri kuyruğa alarak sıra ile işlem sağlamasına yardımıcı olur) gibi özellikleri sayesinde çok fazla tercih ediliyor.

Redis Kullanan Büyük Platformlar

Instagram: Instagram’da, paylaşılan her fotoğraf veya videonun kime ait olduğunu görebiliyoruz. Instagram Ana akışının performansını arttırabilmek için bu kayıtları Redis üzerinde yönetmeyi tercih ettiler.

Github: Github, hız performansını arttırabilmek için yönlendirme bilgileri ve çeşitli diğer veriler için kalıcı bir anahtar/değer deposu olarak Redis’i kullanıyorlar.

Twitter: Twitter, timeline da paylaşılan tweetlerin kullanıcı ID’lerini ve kullanıcıların tweetlerin indexlerini Redis ile saklar. Bu sayede hızlı bir şekilde tweet yazabiliyor ve paylaşılmış tweetleri görüntüleyebiliyoruz.

Bu platformlar haricinde Pinterest, Snapchat, Craigslist, Digg, StackOverflow, Flickr gibi büyük platformlar da Redis’i tercih ediyor.

Redis İçin Güvenlik İpuçları

  • Yetkisiz IP adreslerinden Redis TCP bağlantı noktasına veya UNIX portuna erişimleri engelleyin.
  • Erişim Kontrol Listesi(ACL) ile kullanıcı kontrolü gerçekleştirip Redis üzerinde yapılabileceği işlemlere karar veren bir yetkilendirme ve kontrol sistemi oluşturun.
  • Protected Mode (Korumalı Mod) özelliğini devre dışı bırakmayın. Redis’i herhangi bir şifreleme olmadan çalıştırıldığında Korumalı Mod sadece loopback interfaces üzerinden gelen sorguları yanıtlar ve diğer adreslerden bağlanan kişilere Redis yapılandırması hakkında açıklayıcı bir hata ile dönüş sağlar.
  • Yetkilendirme katmanı üzerinde parolalar şifrelenmeden düz metin halinde saklanır bu nedenle Bruteforce gibi bir saldırı türünden korunabilmek için karmaşık ve uzun parolalar kullanın.
  • Redis komutlarının tamamı şifrelenmeden gönderilir bu nedenle Redis’in bulunduğu ağ üzerinde yüksek güvenlik önlemleri alınmalı ve gizli dinleme sağlayabilecek saldırganların Redis’e erişmesinin önüne geçilmeli.
  • Redis ile istemci arasında bağlantıları TLS ile şifreleyin.
  • Lua ile bir komut dosyası oluşturuyorsanız, güvenilir olmayan kaynaklardan komutlar almayın, çünkü arka planda zararlı komutlar çalışabilir ve büyük güvenlik sorunları ile karşı karşıya kalabilirsiniz.
  • Redis komut isimlerini değiştirmenize izin verir. Bu özelliği kullanarak önemli komutların adlarını kolay tahmin edilemeyen bir isimle güncelleyin.
  • Redis komut çalıştırmak için root yetkisine ihtiyaç duymaz, bu nedenle güvenlik ihlallerinden dolayı Config komutlarınıza ulaşarak sunucu yapılandırmalarınıza, istemci programının çalışma dizinini veya döküm dosyasına erişebilme ve güvenilir olmayan kodların çalışmasına olanak tanır. Bu nedenle Redis çalıştırmak için ayrılacıksız bir Redis kullanıcı oluşturup bu kullanıcı üzerinden işlem yapmanız önerilir.

Redis Paylaşımlı Olarak Kullanılabilir Mi?

Redis kullanımı, tüm servise erişilebilir olmayı gerektirir. Redis’e ulaşabilecek kötü niyetli bir kullanıcı paylaşımlı aynı servis içerisinde bulunan tüm veritabanı verilerini görüntüleyebilir. Redis verileri şifrelemeden sakladığı için ve komut yazabilmek için root yetkisine ihtiyacı bulunmadığı için geri dönülemeyecek düzeyde güvenlik açıkları yaratabilir. Bu nedenle paylaşımlı olarak kullanılması Redis tarafından önerilmez.

Redis’i kullanarak projelerinize hız katmak istiyorsanız sizlere SSD VDS Sanal Sunucularımızı önerebiliriz. Güvenlik katmanını tamamen kendiniz yöneteceğiniz için herhangi bir kısıtlama yaşamadan rahatlıkla kullanabilirsiniz.

SSD VDS Sanal Sunucu hizmetlerimiz için bu sayfayı ziyaret edebilir ve kendinize ait Redis sunucunuzu hızlı bir şekilde oluşturabilirsiniz:

Uygun fiyatlı SSD VDS paketleri


Kaynaklar
Redis

Subscribe
Bildir
guest
0 Yorum
En Yeniler Eskiler
Inline Feedbacks
View all comments