Memcached

Armazenamento distribuído de chave-valor na memória fácil de usar para uso como cache ou armazenamento de sessões de alta performance.

O que é o Memcached?

O Memcached é um datastore na memória fácil de usar e de alta performance. Ele oferece uma solução madura e escalável de código aberto para oferecer tempos de resposta inferiores a 1 milissegundo para utilização como cache ou armazenamento de sessões. O Memcached é uma escolha popular para aplicativos em tempo real para web, dispositivos móveis, jogos, tecnologia de anúncios e comércio eletrônico.

O que é o Memcached?

Como funciona o Memcached?

Ao contrário de bancos de dados que armazenam dados em disco ou SSDs, o Memcached mantém os dados na memória. A eliminação da necessidade de acessar discos permite que armazenamentos de chave-valor na memória, como o Memcached, evitem tempos de pesquisa e acessem os dados em microssegundos. Além disso, o Memcached é distribuído, o que significa que é fácil aumentar sua escala horizontal com a adição de novos nós. E, como o Memcached usa multiencadeamento, é fácil aumentar a escala vertical da capacidade computacional. As características de velocidade e escalabilidade, projeto simples, gerenciamento de memória eficiente e suporte a APIs para a maioria das linguagens de programação comuns fazem do Memcached uma escolha popular para casos de uso de armazenamento em cache de grande escala e alta performance.

Benefícios do Memcached

O Memcached mantém todos os dados na memória principal do servidor. Ao contrário de bancos de dados como PostgreSQL, Cassandra e MongoDB, que armazenam a maioria dos dados em disco ou SSDs, os datastores na memória não precisam acessar repetidamente os discos. Dessa forma, os armazenamentos na memória oferecem suporte a volumes de operações e tempos de resposta que são uma ordem de magnitude maiores que as demais soluções de armazenamento. O resultado é uma performance excepcionalmente rápida, com tempos médios de leitura e gravação abaixo de 1 milissegundo e suporte a milhões de operações por segundo.

O Memcached foi projetado para ser simples e genérico e é uma solução avançada e fácil de usar no desenvolvimento de aplicativos. Há vários clientes de código aberto disponíveis para os desenvolvedores de Memcached. As linguagens compatíveis incluem Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, Go e muitas outras.

A arquitetura distribuída e multiencadeada do Memcached facilita sua escalabilidade. Você pode distribuir os dados entre vários nós, o que permite escalar horizontalmente a capacidade por meio da adição de novos nós ao cluster. Além disso, como o Memcached é multiencadeado, pode usar vários núcleos em um determinado nó. Esse recurso simplifica a escalabilidade vertical da capacidade computacional. O Memcached permite criar soluções de armazenamento distribuído em cache altamente escaláveis, projetadas para proporcionar performance rápida e consistente.

O Memcached é um projeto de código aberto maduro que conta com o suporte de uma comunidade vibrante. Aplicativos como WordPress e Django oferecem suporte ao uso do Memcached para aumentar a performance. Não há dependência de nenhum fornecedor ou tecnologia, pois o Memcached é baseado em padrões abertos, oferece suporte a formatos de dados abertos e disponibiliza um conjunto avançado de clientes.

Casos de uso

Armazenamento em cache

O Memcached é uma ótima escolha para a implementação de um cache em memória de alta performance, proporcionando menor latência no acesso aos dados, maior throughput e facilidade de transferência de carga dos sistemas de back-end. O Memcached pode fornecer itens armazenados no cache em menos de 1 milissegundo e é escalável com facilidade e economia para absorver cargas maiores. Normalmente, o Memcached é usado para armazenamento em cache de resultados de consultas de bancos de dados, sessões, páginas web, APIs e objetos como imagens, arquivos e metadados.

Armazenamento de sessões

Como um datastore na memória, o Memcached é uma opção comum entre desenvolvedores de aplicativos para armazenar e gerenciar dados de sessões para aplicativos na escala da Internet em casos em que a persistência não é essencial. O Memcached foi projetado para oferecer a latência abaixo de 1 milissegundo e a escala necessárias para gerenciar dados de sessões como perfis, credenciais e estado de sessões de usuários.

Suporte a idiomas

O Memcached oferece suporte à maioria das principais linguagens de programação e protocolos, incluindo:

Python

Java

PHP

C/C#/C++

Perl

Go

Ruby

JavaScript

Node.js

Protocolo ASCII

Protocolo binário

Protocolos TCP e UDP

Redis versus Memcached

O Redis e o Memcached são os dois datastores de chave-valor na memória mais populares. O Memcached foi criado priorizando a simplicidade e o Redis oferece um conjunto sofisticado de recursos para atender com eficácia a uma grande variedade de casos de uso. Entenda as diferenças entre os dois mecanismos para escolher a melhor solução para as suas necessidades. Saiba mais sobre o Redis vs. Memcached

Memcached gerenciado na AWS

A Amazon oferece um serviço gerenciado de Memcached, o Amazon ElastiCache para Memcached:

  • Configure, opere e escale facilmente implantações de Memcached na nuvem. Detecção e substituição automáticas de nós com falha.
  • Beneficie-se com a capacidade de hardware econômica e redimensionável.
  • Use um cliente de cluster de ElastiCache para Memcached com descoberta automática para acelerar o desenvolvimento de aplicativos por meio da simplificação do gerenciamento de nós.