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 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ştirmek istemesiyle başladı. Daha sonra, şu anda bir veritabanı, önbellek, ileti aracısı ve kuyruk olarak kullanılan Redis'i geliştirdi.

Redis bir milisaniyenin altında yanıt süreleriyle oyun, reklam teknolojisi, finansal hizmetler, sağlık hizmetleri ve IoT gibi sektörlerde gerçek zamanlı uygulamalar için saniyede milyonlarca isteğin işlenmesini sağlıyor. Stack Overflow'dan beş yıl art arda "En Sevilen" veritabanı unvanını alan Redis, bugün en popüler açık kaynaklı altyapılardan biridir. Hızlı performansı sayesinde Redis; önbelleğe alma, oturum yönetimi, oyun, lider tabloları, gerçek zamanlı analiz, jeo-uzamsal, yolcu taşıma, sohbet/mesajlaşma, medya akışı ve yayınlama/abonelik uygulamaları için popüler bir seçenektir.

AWS, Redis'i çalıştırmak için tam olarak yönetilen iki hizmet sunar. Amazon MemoryDB for Redis, ultra hızlı performans sunan, Redis uyumlu, dayanıklı, bellek içi veritabanı hizmetidir. Amazon ElastiCache for Redis, birincil veritabanlarından ve veri depolarından mikrosaniyelik gecikmelerle veri erişimi sağlayan, tam olarak yönetilen bir önbelleğe alma hizmetidir. ElastiCache ayrıca açık kaynaklı bir diğer önbelleğe alma altyapısı olan Memcached için de destek sunar.

Amazon ElastiCache for Redis ile uygulamalarınızı hızlandırma hakkında daha fazla bilgi edinmek için bu çevrimiçi teknoloji konuşmasına göz atın. 

Redis'in Avantajları

Performans

Tüm Redis verileri bellekte tutulur. Bu da düşük gecikme süresi ve yüksek çıktı veri erişimi sağlar. Geleneksel veritabanlarının aksine, bellek içi veri depolarında diske gitmeye gerek yoktur ve dolayısıyla altyapı gecikme süresi mikrosaniyenin altına düşer. Bu sayede, bellek içi veri depoları diğerleriyle karşılaştırılamayacak kadar çok sayıda işlemi ve daha kısa yanıt sürelerini destekleyebilir. 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 diğer 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 etmek için olasılığa dayalı veri yapısı
  • Akışlar - bir günlük veri yapısı mesaj kuyruğu
  • Jeo-uzamsal - boylam/enleme dayalı girişler Haritalar, "yakındakiler"
  • JSON - sayı, dize, Boolean, dizi ve diğer nesneleri destekleyen adlandırılmış değerlerden oluşan iç içe, yarı yapılandırılmış bir nesne

Basitlik ve kullanım kolaylığı

Redis, geleneksel karmaşık kodları daha az ve daha basit satırlarla yazmanıza olanak tanır. Redis ile uygulamalarınızda veri depolama, erişim ve kullanım amacıyla daha az sayıda kod satırı yazarsınız. Aradaki fark, Redis kullanan geliştiricilerin geleneksel veritabanlarının sorgu dillerinin aksine basit bir komut yapısı kullanabilmesidir. Örneğin, Redis karma veri yapısını kullanarak verileri tek bir satır kodla bir veri deposuna taşıyabilirsiniz. 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 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.

Redis, dayanıklı ve tutarlı bir veritabanı olacak şekilde tasarlanmamıştır. Dayanıklı, Redis ile uyumlu bir veritabanına ihtiyaç duyarsanız Amazon MemoryDB for Redis'i göz önünde bulundurabilirsiniz. Verileri birden fazla Erişilebilirlik Alanında depolayan dayanıklı bir işlem günlüğü kullandığından, birincil veritabanınız olarak MemoryDB'yi kullanabilirsiniz. MemoryDB, geliştiricilerin ayrı bir önbellek, veritabanı veya temel altyapıyı yönetme konusunda endişelenmeden Redis API'sini kullanmalarını sağlamak için amaca özel olarak oluşturulmuştur.

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.

Açık Kaynak

Redis, AWS dahil olmak üzere aktif bir topluluk tarafından desteklenen açık kaynaklı bir projedir. 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.

Makine Öğrenimi

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

Redis ve Memcached 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, PostgreSQL, Aurora, Oracle, SQL Server ve DynamoDB gibi ilişkisel veya anahtar-değer veritabanlarında performansı iyileştirmek için çalışır.

AWS'de Redis'i Kullanma

AWS; Redis ile uyumlu, tam olarak yönetilen iki hizmet sunar: Amazon MemoryDB for Redis ve Amazon ElastiCache for Redis.

Amazon MemoryDB for Redis

Amazon MemoryDB for Redis, ultra hızlı performans sunan, Redis uyumlu, dayanıklı, bellek içi veritabanı hizmetidir. Mikro hizmetler mimarileriyle oluşturulmuş modern uygulamalar için amaca özel olarak tasarlanmıştır. Amazon MemoryDB; hızlı yük devretme, veritabanı kurtarma ve düğüm yeniden başlatma işlemleri için bir Multi-AZ işlem günlüğü kullanarak verileri birden fazla Erişilebilirlik Alanında (AZ) dayanıklı olacak şekilde depolar. Amazon MemoryDB ile tüm verileriniz bellekte depolanır. Bu da mikrosaniye gecikmeyle okuma, tek basamaklı milisaniye gecikmeyle yazma ve yüksek aktarım hızına ulaşmanızı sağlar. 

Amazon MemoryDB for Redis hakkında daha fazla bilgi için MemoryDB belgelerine göz atın.

Amazon ElastiCache for Redis

Amazon ElastiCache for Redis, önbelleği bulutta ayarlamanızı, çalıştırmanızı ve ölçeklendirmenizi kolaylaştıran, tam olarak yönetilen bir önbelleğe alma hizmetidir. ElastiCache for Redis ile uygulama hızını artırabilir, verileri birincil veritabanlarından ve veri depolarından önbelleğe alarak mikrosaniye okuma ve yazma gecikmesine ulaşabilirsiniz. ElastiCache for Redis'i AWS Ücretsiz Kullanım ile ücretsiz olarak deneyebilirsiniz. 

Amazon ElastiCache for Redis

Kaydolun

Amazon MemoryDB ve Amazon ElastiCache için erişim elde edin.
Amazon ElastiCache for Redis hakkında bilgi edinin

Amazon ElastiCache'i kullanmaya başlayın

ElastiCache for Redis'i Kullanmaya Başlayın

Amazon MemoryDB ile oluşturmaya başlayın

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