Memcached – Wikipédia, a enciclopédia livre
Ir para o conteúdo
Origem: Wikipédia, a enciclopédia livre.
Esta página
cita fontes
, mas que
não cobrem
todo o conteúdo
Ajude a
inserir referências
Encontre fontes:
Google
WP refs
ABW
CAPES
).
agosto de 2020
Memcached
Desenvolvedor
Danga Interactive
Lançamento inicial
22 de maio
de 2003
2003-05-22
Lançamento estável
1.6.23
/ 9 de janeiro de 2024
; há 2 anos
Repositório
github
.com
/memcached
/memcached
Escrito em
Sistema
operacional
Cross-platform
Tipo
distributed memory caching system
Licença
BSD License
Website
www
.memcached
.org
Em
computação
memcached
é um sistema distribuído de
cache em memória
de propósitos gerais. É frequentemente utilizado para acelerar sites dinâmicos orientados a banco de dados, cacheando dados e
objetos
na
RAM
para reduzir o número de vezes que uma fonte de dados externa (como um banco de dados ou uma API) deve ser acessada. Foi originalmente desenvolvido pela Danga Interactive para o
LiveJournal
, mas é usado agora para muitos outros sites. O Memcached roda em
Unix
Linux
Windows
Mac OS X
e é distribuído sobre a licença
Revised BSD license
API
do memcached provê uma
hash table
gigante distribuída em múltiplas máquinas. Quando a tabela está cheia, inserções subsequentes fazem com que os dados antigos sejam expurgados em
least recently used (LRU)
order.
Aplicações usando memcached tipicamente colocam requests e adições em RAM antes de recorrer a armazenamentos mais lentos, como bancos de dados.
O sistema é usado em sites incluindo o
Reddit
Zynga
Orange
10
11
Wikipedia
12
Engine Yard
está usando o memcached como parte de sua stack tecnológica de
platform as a service
13
e o
Heroku
oferece um serviço de memcached administrado no seu
Couchbase Server
14
como parte de seu serviço de plataforma como serviço.
Google App Engine
AppScale
Windows Azure
Amazon Web Services
também oferecem um serviço de memcached através de uma API.
15
16
17
18
História
editar
editar código
O memcached foi desenvolvido inicialmente por
Brad Fitzpatrick
para seu site,
LiveJournal
, em 22 de Maio de 2003.
19
20
21
Arquitetura
editar
editar código
O sistema usa uma arquitetura
cliente-servidor
. O servidor mantem um
array associativo
chave-valor; o cliente popula esse array e consulta-o. Chaves podem ter até 250 bytes e os valores podem ter no máximo 1MB (
megabyte
) de tamanho.
Clientes usam bibliotecas client-side para contactar os servidores que por padrão expõe seus serviços na
porta
11211. Cada cliente conhece todos os servidores, esses não se comunicam entre si. Se um cliente deseja setar ou ler o valor correspondente a uma chave, a biblioteca cliente primeiramente computa o
hash
da chave para determinar qual servidor usar. Então ele contacta o servidor. O servidor então computa um segundo hash da chave para determinar onde armazenar ou ler o valor correspondente.
O servidor mantém os valores em RAM. Se um servidor fica sem memória livre, ele descarta os valores mais antigos. Portanto, os clientes devem tratar o memcached como um cache transitório. Eles não devem contar com que os dados armazenados no memcached ainda estarão lá quando ele precisarem.
MemcacheDB
Couchbase Server
Tarantool
e outros
bancos de dados
proveem armazenamento persistente enquanto mantém a compatibilidade com o protocolo do memcached.
Se todas as bibliotecas client usam o mesmo
algoritmo
de hash para determinar o servidores, então os clientes pode ler os dados cacheados um dos outros. Isso é obviamente desejável.
Uma implementação típica terá vários servidores e muitos clientes. Porém é possível usar o memcached em um único computador, agindo como cliente e servidor.
Segurança
editar
editar código
A maioria das implantações do memcached estão dentro de uma rede confiável onde os clientes podem se conectar livremente a qualquer servidor. Há casos, contudo, em que o memcached é implementado em uma rede não confiável ou quando os administradores gostariam de exercitar controle sobre os clientes que estão conectando.
Uma apresentação na
BlackHat USA 2010
revelou que um grande número de grande sites públicos deixaram seus memcached abertos para inspeção, análise, obtenção e modificação de dados.
22
Ver também
editar
editar código
Portal da Wikipédia
Portal da Wikipédia
Couchbase Server
Redis
Mnesia
MemcacheDB
Hazelcast
Cassandra
Infinispan
Referências
«Release 1.6.23»
. Consultado em 14 de fevereiro de 2025
«License of memcached»
. Consultado em 1 de fevereiro de 2013
. Arquivado do
original
em 28 de fevereiro de 2008
«Memcached NewOverview»
«Memcached NewUserInternals»
Cuong Do Cuong (Engineering manager at YouTube/Google).
Seattle Conference on Scalability: YouTube Scalability
(Online Video - 26th minute). Seattle: Google Tech Talks
Texto " June 23, 2007 " ignorado (
ajuda
Steve Huffman on Lessons Learned at Reddit
How Zynga Survived FarmVille
Facebook Developers Resources
Scaling memcached at Facebook
Orange Developers
It's Not Rocket Science, But It's Our Work
MediaWiki memcached
Engine Yard Technology Stack
Heroku memcached add-on
Using Memcache - Google App Engine - Google Code
memcached in AppScale
«LiveJournal changelog»
. LiveJournal. 22 de Maio de 2003
. Consultado em 6 de Outubro de 2016
«weather, running, distributed cache daemon - brad's life»
. LiveJournal. 22 de Maio de 2003
. Consultado em 6 de Outubro de 2016
«memcached»
. LiveJournal. 27 de Maio de 2003
. Consultado em 6 de Outubro de 2016
«BlackHat Write-up: go-derper and mining memcaches»
. Consultado em 1 de fevereiro de 2013
. Arquivado do
original
em 4 de abril de 2013
Ligações externas
editar
editar código
«Official memcached site»
(em inglês)
«memcached wiki and faq»
. (em inglês)
«PHP Memcached Manager with Tag Support»
(em inglês)
«membase»
. (em inglês)
«Memcached and Ruby»
(em inglês)
«go-memcached - memcached implementation in Go»
. (em inglês)
«QuickCached - memcached server implementation in Java»
(em inglês)
«nsmemcache - memcache client for AOL Server»
. (em inglês)
Distribuições Comerciais com Suporte
editar
editar código
«Couchbase Server (formerly Membase)»
(em inglês). offers a memcached "bucket type" (free for use, subscription support available)
«GigaSpaces Java based Memcached»
(em inglês). (free community edition, fault tolerance)
«Hazelcast Memcached»
(em inglês). clustered, elastic, fault-tolerant, Java based memcached (free for use, subscription support available)
Obtida de "
Categorias
Softwares multiplataformas
Software de 2003
Categorias ocultas:
!Artigos que carecem de notas de rodapé desde agosto de 2020
!Artigos que carecem de notas de rodapé sem indicação de tema
!Páginas com referências com parâmetros indefinidos
!CS1 inglês-fontes em língua (en)
Memcached
Adicionar tópico
US