Memcached

Store chiave-valore in-memory, distribuito e di facile utilizzo per l'uso come cache o store delle sessioni ad alte prestazioni.

Che cos'è Memcached?

Memcached è un datastore in-memory, di facile utilizzo e ad alte prestazioni. Offre una soluzione matura, scalabile e open-source per ottenere tempi di risposta inferiori a un millisecondo, una funzionalità utile come cache o store delle sessioni. Memcached è una scelta popolare per le applicazioni in tempo reale su Web, app mobile, videogiochi, tecnologia pubblicitaria ed e-commerce.

Che cos'è Memcached?

Come funziona Memcached?

A differenza dei database che memorizzano i dati su disco o su SSD, Memcached archivia i dati in memoria. Eliminando l'esigenza di accedere ai dischi, gli store chiave-valore in-memory come Memcached evitano i ritardi dovuti ai tempi di ricerca e sono in grado di accedere ai dati in pochi microsecondi. Inoltre, Memcached è distribuito, il che significa che è facilmente scalabile aggiungendo nuovi nodi. E dal momento che Memcached è multi-thread, è possibile aumentare facilmente la capacità di elaborazione. Come conseguenza della velocità e scalabilità, oltre a un design semplice, efficiente gestione della memoria e supporto API per la maggior parte delle lingue, Memcached è una scelta popolare per i casi d'uso di caching su larga scala e ad alte prestazioni.

Vantaggi di Memcached

Memcached conserva tutti i dati nella memoria principale del server. A differenza dei datastore come PostgreSQL, Cassandra e MongoDB che memorizzano la maggior parte dei dati su disco o SSD, i datastore in-memory non devono tornare ciclicamente al disco. Questo consente loro di supportare una quantità di operazioni di ordine di grandezza superiore e tempi di risposta più rapidi. Il risultato è costituito da prestazioni incredibilmente elevate con tempi medi di lettura e scrittura inferiori al millisecondo e supporto per milioni di operazioni al secondo.

Memcached è progettato per essere semplice e generico, una caratteristica che lo rende potente e di facile utilizzo nello sviluppo di applicazioni. Per gli sviluppatori Memcached sono disponibili numerosi client open source. Tra i linguaggi supportati sono presenti Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, Go e molti altri.

L'architettura distribuita e multi-thread di Memcached facilita la scalabilità. Puoi suddividere i dati tra numerosi nodi, per scalare la capacità aggiungendo nuovi nodi al tuo cluster. Inoltre, dal momento che Memcached è multi-thread, può utilizzare più core su un nodo dato. Questo semplifica la scalabilità della capacità di elaborazione. Con Memcached puoi costruire soluzioni di cache distribuita a elevata scalabilità, progettate per fornire prestazioni rapide e uniformi.

Memcached è un progetto maturo e open source, supportato da una vivace community. Applicazioni come WordPress e Django supportano l'utilizzo di Memcached per migliorare le prestazioni. Non esistono vincoli di fornitore o di tecnologia; Memcached è basato su standard aperti, supporta formati di dati aperti e funziona con diversi client.

Casi d'uso

Caching

Memcached è la soluzione ideale per implementare una cache in memoria a elevate prestazioni per ridurre la latenza di accesso ai dati, potenziare il throughput e alleggerire il carico dai sistemi di back-end in uso. Memcached è in grado di servire elementi in cache in meno di un millisecondo e consente di scalare in modo facile e conveniente per carichi superiori. Memcached è molto utilizzato per caching dei risultati delle query dei database, caching di sessioni, caching di pagine Web, caching di API e caching di oggetti quali immagini, file e metadata.

Store di sessioni

Memcached come datastore in-memory è una soluzione gettonata tra gli sviluppatori di applicazioni per la memorizzazione e gestione dei dati delle sessioni per applicazioni in scala Internet, nei casi in cui la persistenza non è cruciale. Memcached è progettato per fornire una latenza inferiore a un millisecondo e la scala richiesta per la gestione dei dati delle sessioni, quali profili utente, credenziali e stato delle sessioni.

Supporto per le lingue

Memcached supporta la maggior parte delle sintassi e dei protocolli di programmazione più importanti, tra cui:

Python

Java

PHP

C/C#/C++

Perl

Go

Ruby

JavaScript

Node.js

Protocollo ASCII

Protocollo binario

Protocolli TCP e UDP

Redis vs. Memcached

Redis e Memcached sono i due datastore chiave-valore in-memory più popolari. Memcached è stato pensato per essere semplice, mentre Redis offre una ricca serie di funzionalità che lo rendono efficace per gli usi più svariati. Comprendi le differenze tra i due motori per decidere quale soluzione soddisfa meglio le tue esigenze. Ulteriori informazioni su Redis rispetto a Memcached

Servizio Memcached completamente gestito in AWS

Amazon offre un servizio Memcached interamente gestito, Amazon ElastiCache per Memcached:

  • Configura, utilizza e scala facilmente le distribuzioni Memcached nel cloud. I nodi con errori vengono automaticamente rilevati e sostituiti.
  • Trai vantaggio dalla capacità hardware conveniente e ridimensionabile.
  • Utilizza un client cluster ElastiCache Memcached con individuazione automatica per accelerare lo sviluppo delle applicazioni semplificando la gestione dei nodi.