Memcached

Yüksek performanslı bir önbellek veya oturum deposu olarak kullanılmaya yönelik kullanımı kolay, dağıtılmış, bellek içi bir anahtar-değer deposu.

Memcached nedir?

Memcached; kullanımı kolay, yüksek performanslı, bellek içi bir veri deposudur. Bir milisaniyeden düşük yanıt süreleri sunmaya yönelik bu kendini kanıtlamış, ölçeklenebilir, açık kaynak kodlu çözüm, önbellek veya oturum deposu olarak kullanışlıdır. Web, Mobil Uygulamalar, Oyunlar, Reklam Teknolojileri ve E-Ticaret alanlarında gerçek zamanlı uygulamaların desteklenmesi için popüler bir tercihtir.

Memcached nedir?

Memcached nasıl çalışır?

Memcached, verileri disk veya SSD'lerde depolayan veritabanlarından farklı olarak verilerini bellekte depolar. Memcached gibi bellek içi anahtar-değer 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. Memcached aynı zamanda dağıtılmış olduğundan, yeni düğümler ekleyerek ölçeği genişletmek kolaydır. Üstelik Memcached çok iş parçacıklıdır, yani işlem kapasitesinin ölçeğini kolayca artırabilirsiniz. Sunduğu hız ve ölçeklenebilirliğin yanı sıra basit tasarım, etkili bellek yönetimi ve çoğu popüler dil için API desteği sayesinde Memcached yüksek performanslı, büyük ölçekli önbelleğe alma kullanım örnekleri için popüler bir tercihtir.

Memcached Avantajları

Memcached tüm verilerini sunucunun ana belleğinde tutar. Bellek içi veri depoları, verilerinin çoğunu diskte veya SSD'lerde tutan PostgreSQL, Cassandra ve MongoDB gibi veritabanlarından farklı olarak, diske yinelenen gidiş-dönüş işlemleri gerçekleştirmek zorunda değildir. Bu sayede, diğerleriyle karşılaştırılamayacak kadar çok sayıda işlemi ve daha kısa yanıt sürelerini destekleyebilir. Sonuç mu? Bir milisaniyenin altındaki ortalama okuma ve yazma sürelerinin yanı sıra saniyede milyonlarca işlemi destekleme olanağı sunan baş döndürücü performans.

Memcached basit ve genel olacak şekilde tasarlandığından hem güçlüdür hem de uygulama geliştirme sürecinde kullanımı kolaydır. Memcached geliştiricileri birçok açık kaynak kodlu istemciye erişebilir. Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby ve Go dahil birçok dil desteklenir.

Memcached’in dağıtılmış ve çok iş parçacıklı mimarisi ölçeklendirmeyi kolaylaştırır. Verilerinizi bir dizi düğüm arasında paylaştırabileceğinizden, kümenize yeni düğümler ekleyerek kapasite ölçeğini genişletebilirsiniz. Üstelik, Memcached çok iş parçacıklı olduğundan belirli bir düğümde birden çok çekirdek kullanabilir. Bu ise işlem kapasitesi ölçeğinin artırılmasını basitleştirir. Memcached ile hızlı ve tutarlı performans sağlayacak şekilde tasarlanmış, yüksek oranda ölçeklenebilir dağıtılmış önbellek çözümleri oluşturabilirsiniz.

Memcached, son derece aktif bir topluluk tarafından desteklenen, kendini kanıtlamış, açık kaynak kodlu bir projedir. WordPress ve Django gibi uygulamalar performansın iyileştirilmesi amacıyla Memcached kullanımını desteklemektedir. Memcached'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.

Kullanım örnekleri

Önbelleğe Alma

Veri erişimi gecikme süresini azaltmak, aktarım hızını artırmak ve arka uç sistemlerinizin yükünü hafifletmek amacıyla yüksek performanslı bir bellek içi önbellek uygulamak istiyorsanız Memcached harika bir tercihtir. Memcached, önbelleğe alınmış öğeleri bir milisaniyeden kısa sürede sunabilir ve daha yüksek yükler için kolay, uygun maliyetli bir biçimde ölçeklendirme uygulamanıza imkan tanır. Memcached, veritabanı sorgulama sonuçlarını önbelleğe alma, oturumları önbelleğe alma, web sayfalarını önbelleğe alma, API'leri önbelleğe alma ve görüntüler, dosyalar, meta veriler gibi nesneleri önbelleğe alma gereksinimleri için popüler bir tercihtir.

Oturum deposu

Memcached, kalıcılığın kritik olmadığı durumlarda internet ölçeğindeki uygulamalar için oturum verilerinin depolanması ve yönetilmesi amacıyla, uygulama geliştiricileri arasında bellek içi bir veri deposu olarak yaygın olarak tercih edilmektedir. Memcached, kullanıcı profilleri, kimlik bilgileri ve oturum durumu gibi oturum verilerinin yönetilmesi için bir milisaniyeden kısa yanıt süresi ve ölçek gereksinimlerini karşılayacak şekilde tasarlanmıştır.

Dil desteği

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

Python

Java

PHP

C/C#/C++

Perl

Go

Ruby

JavaScript

Node.js

ASCII protokolü

İkili iletişim protokolü

TCP ve UDP protokolleri

Redis ve Memcached

Redis ve Memcached, en popüler iki bellek içi anahtar-değer veri deposudur. Redis, geniş bir aralıktaki kullanım örnekleri için etkili olmasını sağlayan zengin bir özellik kümesi sunarken, Memcached basitliğe yönelik olarak tasarlanmıştır. İhtiyaçlarınızı en iyi hangi çözümün karşıladığına karar vermek için iki altyapı arasındaki farkları anlayın. Redis ve Memcached  hakkında daha fazla bilgi edinin

AWS'de tümüyle yönetilen Memcached

Amazon, Memcached İçin Amazon ElastiCache adlı tam olarak yönetilen bir Memcached hizmeti sunar:

  • Bulutta kolayca Memcached dağıtımları ayarlayın, çalıştırın ve ölçeklendirin. Başarısız olan düğümler otomatik olarak algılanır ve değiştirilir.
  • Uygun maliyetli ve yeniden boyutlandırılabilen donanım kapasitesi avantajından yararlanın.
  • Bir ElastiCache Memcached Küme İstemcisini Otomatik Keşif ile kullandığınızda düğüm yönetimini basitleştirerek uygulama geliştirme sürecini hızlandırabilirsiniz.