Redis

Veritabanı, önbellek, ileti aracısı ve kuyruk olarak kullanılabilecek hızlı, açık kaynak kodlu bellek içi veri deposu.

Redis nedir?

Remote Dictionary Server (Uzak Sözlük Sunucusu) ifadesinin kısaltması olan Redis; veritabanı, önbellek, ileti aracısı ve kuyruk olarak kullanılabilecek hızlı, açık kaynak, bellek içi anahtar-değer veri deposudur. Proje, Redis’in ilk geliştiricisi olan Salvatore Sanfilippo’nun, İtalya’daki startup şirketinin ölçeklenebilirliğini iyileştirmeye çalışması sırasında başladı. Redis artık bir milisaniyenin altında yanıt süreleriyle gerçek zamanlı Oyun, Reklamcılık Teknolojisi, Finansal Hizmetler, Sağlık Hizmetleri ve IoT uygulamaları için saniyede milyonlarca isteğin işlenmesini sağlıyor. Redis önbelleğe alma, oyun, lider tabloları, oturum yönetimi, gerçek zamanlı analiz, jeo-uzamsal, yolcu taşıma, sohbet/mesajlaşma, medya akışı ve yayımlama/abonelik uygulamaları için popüler bir seçenektir.

Redis nasıl çalışır?

Verileri disk veya SSD üzerinde depolayan veritabanlarından farklı olarak tüm Redis verileri bellek içinde tutulur. Redis gibi bellek içi veri depoları, disklere erişme gereksinimini ortadan kaldırarak arama süresi nedeniyle gecikme yaşanmasını önler ve verilere mikrosaniye cinsinden ölçülebilecek bir sürede erişebilir. Redis sunduğu çok amaçlı veri yapıları, yüksek erişilebilirlik, jeo-uzamsal, Lua betiği, işlemler, disk üzerinde süreklilik ve küme desteğiyle internet ölçeğinde gerçek zamanlı uygulamalar oluşturmayı kolaylaştırır.

Redis ile Memcached'in Karşılaştırması

Redis ve MemCached açık kaynak kodlu, bellek içi veri depolarıdır. Redis, geniş bir aralıktaki kullanım örnekleri için etkili olmasını sağlayan zengin bir özellik kümesi sunarken, yüksek performanslı bir dağıtılmış önbellek hizmeti olan Memcached basitliğe yönelik olarak tasarlanmıştır. Karar almanıza yardımcı olacak daha ayrıntılı bir kıyaslama için Redis ile Memcached'in Karşılaştırması bölümünü inceleyin.  Bu uygulamalar MySQL, Postgres, Aurora, Oracle, SQL Server ve DynamoDB gibi ilişkisel veya anahtar-değer veritabanlarında performansı iyileştirmek için çalışır. 

Redis 5.0 sürümündeki yenilikler

Redis 5 ve son olarak Redis 5.0.3, açık kaynak kodlu Redis’in en son GA sürümüdür. İlk sürümü 2009 yılında bir önbellek teknolojisi olarak yayımlanan açık kaynak kodlu Redis, çok yönlü veri yapıları ve bir milisaniyenin altında yanıt süreleri sunan, kullanımı kolay ve hızlı bir bellek içi veri deposuna dönüştü. Redis, çeşitli geliştirmeler ve iyileştirmeler içeren 5.0 sürümüyle önemli bir kilometre taşına ulaştı. Burada en çok dikkat çeken nokta, HyperLogLog’dan beri Redis’teki tamamen yeni ilk veri yapısı olan Akışlar’ın kullanıma sunulması. Bu sürümde ayrıca Sıralanmış Setler için daha fazla komut ve Modül API’leri için yeni özellikler eklendi.

Amazon ElastiCache for Redis

Şifreleme, çevrimiçi küme yeniden boyutlandırma, yüksek erişilebilirlik ve mevzuat uyumluluğu özelliklerine sahip tam olarak yönetilen Redis.

Redis'in Avantajları

Bellek içi veri deposu

Verilerin çoğunu disk veya SSD üzerinde depolayan PostgreSQL, Cassandra, MongoDB ve diğer veritabanlarından farklı olarak tüm Redis verileri sunucunun ana belleğinde tutulur. Çoğu işlem için diskten veri aktarımına ihtiyaç duyan geleneksel disk tabanlı veritabanlarına kıyasla Redis gibi bellek içi veri depoları aynı aktarıma ihtiyaç duymaz. Bu nedenle bu veritabanları daha fazla işlemi ve daha hızlı yanıt sürelerini destekler. Sonuç olarak bir milisaniyeden az ortalama okuma ve yazma operasyonlarına sahip olağanüstü hızlı performans ve saniye başına milyonlarca işlem için destek sunulur.

Esnek veri yapıları

Redis, sınırlı veri yapısı sunan basit anahtar-değer veri depolarından farklı olarak uygulamalarınızın ihtiyaçlarına uygun çok çeşitli veri yapılarına sahiptir. Redis veri türleri şunlardır:

  • Dizeler – en fazla 512 MB boyutunda metin veya ikili veri
  • Listeler – eklendikleri sırada Dize koleksiyonu
  • Kümeler – sıralı olmayan dize koleksiyonu; diğer Küme türleriyle kesişim, birleşim ve fark özelliğine sahiptir
  • Sıralanmış Kümeler – bir değere göre sıralanmış kümeler
  • Karmalar – alan ve değer listesinin depolanması için veri yapısı
  • Bit eşlemler – bit düzeyinde işlem sunan veri türü
  • HyperLogLogs – bir veri kümesindeki benzersiz öğeleri tahmin eden olasılığa dayalı veri yapısı

Basitlik ve kullanım kolaylığı

Redis, uygulamalarınızda veri depolama, erişim ve kullanım amacıyla daha az sayıda kod satırı yazmanızı sağlayarak kodunuzu basitleştirir. Örneğin uygulamanız bir karma eşlemde depolanan verilere sahipse ve bu verileri bir veri deposunda depolamak istiyorsanız Redis karma veri yapısını kullanabilirsiniz. Benzer bir görevin karma veri yapısına sahip olmayan bir veri deposunda gerçekleştirilmesi için verileri bir biçimden başka bir biçime dönüştürmek üzere satırlarca kod yazılması gerekir. Redis, verilerinizi değiştirmek ve onlarla etkileşim kurmak için yerel veri yapılarına ve çeşitli seçeneklere sahiptir. Redis yazılım geliştiricilerinin kullanabileceği yüzün üzerinde açık kaynak istemci vardır. Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R ve Go dahil birçok dil desteklenir.

Replikasyon ve kalıcılık

Redis, birincil replika mimarisi kullanır ve verilerin birden çok replikasyon sunucusuna çoğaltılabileceği zaman uyumsuz replikasyonu destekler. Bu özellik geliştirilmiş okuma performansı (istekler sunucular arasında bölünebileceğinden) ve birincil sunucuda kesinti olduğunda daha hızlı kurtarma sağlar. Redis, kalıcılık için belirli bir noktaya yedekleme (Redis verileri kümesini diske kopyalama) özelliğini destekler.

Yüksek erişilebilirlik ve ölçeklenebilirlik

Redis, tek düğümlü birincil veya kümelenmiş topolojide birincil replika mimarisi kullanır. Bu da tutarlı performans ve güvenilirlik sunan yüksek oranda erişilebilir çözümler oluşturmanızı sağlar. Kümenizin boyutunu ayarlamanız gerektiğinde kullanabileceğiniz birçok ölçek artırma ve azaltma seçeneği vardır. Bu da kümenizin ihtiyaçlarınızla birlikte büyümesini sağlar.

Genişletilebilirlik

Redis, aktif bir topluluk tarafından desteklenen açık kaynak projesidir. Redis'in açık standartları temel alması, açık veri biçimlerini desteklemesi ve zengin bir istemci seçeneği yelpazesi sunması sayesinde belirli bir satıcıya veya teknolojiye bağımlı olmazsınız.

Önbelleğe Alma

Redis; veri erişimi gecikme süresini azaltmak, performansı artırmak ve ilişkisel veya NoSQL veritabanınızın ve uygulamanızın yükünü hafifletmek üzere yüksek oranda erişilebilir bellek içi önbellek uygulaması için harika bir seçenektir. Redis sık istenen öğeleri bir milisaniyenin altındaki yanıt sürelerinde sunabilir ve yüksek maliyetli arka ucu büyütmeden daha yüksek yükler için kolayca ölçeklendirme yapmanızı sağlar. Veritabanı sorgusu sonuçlarını önbelleğe alma, kalıcı oturumu önbelleğe alma, web sayfası önbelleğe alma ve görüntüler, dosyalar ve meta veriler gibi sık kullanılan nesneleri önbelleğe alma, Redis ile gerçekleştirilen popüler önbelleğe alma işlemlerinden bazılarıdır.

Sohbet, mesajlaşma ve kuyruklar

Redis desen eşleme ile Pub/Sub desteğinin yanı sıra listeler, sıralanmış kümeler ve karmalar gibi çeşitli veri yapıları sunar. Bu da Redis'in yüksek performanslı sohbet odalarını, gerçek zamanlı yorum akışlarını, sosyal medya akışlarını ve sunucular arası iletişimi desteklemesini sağlar. Redis Liste veri yapısı basit bir kuyruk uygulamanızı kolaylaştırır. Listeler engelleme özelliklerinin yanı sıra atomik operasyonlar sunar ve bu sayede güvenilir mesaj aracısına veya dairesel listeye ihtiyaç duyan çeşitli uygulamalar için uygundur.

Oyun puan tabloları

Redis, gerçek zamanlı puan tablosu oluşturmak isteyen oyun geliştiriciler arasında popüler bir seçenektir. Listeyi kullanıcı puanlarına göre sıralarken öğelerin benzersiz olma durumunu sağlayan Redis Sıralanmış Küme veri yapısını kullanmanız yeterlidir. Gerçek zamanlı sıralı liste oluşturmak, değişen kullanıcı puanını güncellemek kadar kolaydır. Sıralanmış Kümelerde zaman damgalarını puan olarak kullanarak zaman serisi verilerini de işleyebilirsiniz.

Oturum deposu

Yüksek erişilebilirlik ve kalıcılık sunan bir bellek içi veri deposu olan Redis, uygulama geliştiriciler arasında internet ölçeğindeki uygulamaların oturum verilerini depolamak ve ölçeklendirmek için popüler seçeneklerden biridir. Redis kullanıcı profilleri, kimlik bilgileri, oturum durumu ve kullanıcıya özgü özelleştirme gibi oturum verilerini yönetmek için gerekli olan bir milisaniyenin altında gecikme süresi, ölçeklendirme ve dayanıklılığı sunar.

Zengin medya akışı

Redis, canlı akış kullanım örneklerini desteklemek için hızlı ve bellek içi veri deposu sunar. Redis kullanıcı profilleri ve görüntüleme geçmişleri hakkında meta verileri, milyonlarca kullanıcı için kimlik doğrulaması bilgilerini/belirteçlerini ve CDN'lerin aynı anda milyonlarca mobil ve masaüstü kullanıcısına video akışı yapmasını sağlamak için bildirim dosyalarını depolamak için kullanılabilir.

Jeo-uzamsal

Redis, gerçek zamanlı jeo-uzamsal verileri uygun ölçekte ve hızda yönetmek için özel olarak oluşturulmuş bellek içi veri yapıları ve operatörler sunar. GEOADD, GEODIST, GEORADIUS ve GEORADIUSBYMEMBER gibi komutlar jeo-uzamsal verilerin gerçek zamanlı olarak depolanmasını, işlenmesini ve analiz edilmesini sağlayarak Redis ile jeo-uzamsal özelliklerin kullanılmasını kolay ve hızlı duruma getirir. Redis'i kullanarak uygulamalarınıza sürüş zamanı, sürüş mesafesi ve ilgi çekici noktalar gibi konum tabanlı özellikler ekleyebilirsiniz.

Machine Learning

Modern veri tabanlı uygulamalar miktar, çeşitlilik ve hız açısından uç özelliklerdeki verileri hızlı bir şekilde işlemek ve karar almayı otomatikleştirmek için makine öğrenimine ihtiyaç duyar. Oyunlarda ve finansal hizmetlerde sahtekarlık algılama, reklamcılık teknolojisi alanında gerçek zamanlı teklif verme, arkadaş bulma ve yolculuk paylaşma hizmetlerinde eşleşme yapma gibi kullanım örneklerinde canlı verileri işleme ve milisaniyeler içinde karar alma çok büyük bir öneme sahiptir. Redis, makine öğrenimi modellerini hızlı bir şekilde oluşturmak, eğitmek ve dağıtmak için hızlı bellek içi veri deposu sunar.

Gerçek zamanlı analitik

Redis, gerçek zamanlı verileri bir milisaniyenin altında gecikme süresiyle almak, işlemek ve analiz etmek için bellek içi veri deposu olarak Apache Kafka ve Amazon Kinesis gibi akış çözümleriyle birlikte kullanılabilir. Redis sosyal medya analitiği, reklam hedefleme, kişiselleştirme ve IoT gibi gerçek zamanlı analitik kullanım örnekleri için ideal bir seçimdir.

Redis Dil Desteği

Redis, şunlar dahil olmak üzere önde gelen çoğu programlama dilini ve protokolü destekler:

Python

Java

PHP

AWS'de tam olarak yönetilen Redis

Amazon tarafından sunulan tam olarak yönetilen Redis hizmeti olan Amazon Elasticache for Redis, AWS Ücretsiz Kullanımı ile ücretsiz olarak kullanılabilir. Amazon Elasticache for Redis, bulutta Redis dağıtımları ayarlamayı, çalıştırmayı ve ölçeklendirmeyi kolaylaştırır. Amazon ElastiCache ile internet ölçeğinde Redis dağıtımlarını dakikalar içinde, uygun maliyetli ve yeniden boyutlandırılabilir donanım kapasitesiyle dağıtabilirsiniz.
Ücretsiz Amazon Elasticache for Redis’i kullanmaya başlamak için üç kolay adımı uygulayın:
Amazon Elasticache for Redis

Kaydolun

Amazon ElastiCache Ücretsiz Kullanımı için erişim elde edin.
Amazon Elasticache for Redis hakkında bilgi edinin

Basit öğreticilerle öğrenin

ElastiCache for Redis'i Kullanmaya Başlayın

Oluşturmaya başlayın

Kullanım kılavuzunun yardımıyla oluşturmaya başlayın.