Generated by GPT-5-mini| Memcached | |
|---|---|
| Name | Memcached |
| Type | In-memory key-value store |
| Developer | Danga Interactive |
| Released | 2003 |
| License | BSD-like |
Memcached Memcached is a high-performance, distributed, in-memory key-value cache originally developed by Danga Interactive. It is widely used in web infrastructure alongside projects such as Facebook, Twitter, Wikipedia, YouTube, and Reddit to reduce database load and accelerate dynamic content delivery. Architects often deploy Memcached with platforms like Amazon Web Services, Google Cloud Platform, Microsoft Azure, Heroku, and OpenStack.
Memcached provides a simple volatile store for small chunks of data such as rendered HTML fragments, session objects, and query results, complementing systems including MySQL, PostgreSQL, MongoDB, Redis, and Cassandra. Early adopters included LiveJournal, Flickr, Vimeo, WordPress.com, and Drupal deployments. Integrations exist across programming ecosystems like PHP, Python (programming language), Ruby (programming language), Java (programming language), Node.js, and Go (programming language).
Memcached implements a client–server model influenced by projects such as Berkeley DB, Erlang designs, and Google Bigtable principles, using slab allocation and hash tables to manage memory within processes running on hosts like Linux, FreeBSD, Solaris, and Windows Server. Clients interact using a simple ASCII or binary protocol comparable to those of SMTP, HTTP/1.1, and Memcached binary protocol style conventions, facilitating integrations with proxies such as HAProxy and orchestration tools like Kubernetes and Docker. Scalability patterns mirror those used by Amazon Dynamo and Consistent hashing techniques used in Apache Cassandra.
Memcached exposes operations comparable to RPC-style interfaces used by gRPC and Thrift, including get, set, delete, increment, and decrement. It uses eviction policies and LRU-like strategies related to cache designs from Oracle Corporation and IBM enterprise caches; memory fragmentation is addressed through slab allocator decisions inspired by Doug Lea memory allocators. Monitoring and metrics integrate with systems like Prometheus, Nagios, Zabbix, Datadog, and New Relic to provide telemetry for capacity planning and alerting seen in PagerDuty workflows.
Common use cases include caching results from Elasticsearch, Solr, and Sphinx (search engine) queries, session storage for frameworks such as Django, Ruby on Rails, Express (software) and Spring Framework, and accelerating API responses in services resembling those at Uber, Airbnb, Netflix, and Spotify. Benchmarks often compare Memcached with Redis, Varnish, and Hazelcast under workloads described in papers from USENIX, ACM SIGCOMM, and IEEE INFOCOM. High-throughput deployments run on hardware vendors like Intel Corporation, AMD, NVIDIA, and network fabrics from Cisco Systems or Arista Networks.
Memcached’s design lacks built-in authentication or encryption by default, prompting administrators to use network-level protections such as iptables, pfSense, AWS Security Groups, and VPN tunnels like OpenVPN or WireGuard. Publicly exposed instances have been exploited in distributed amplification incidents analogous to attacks observed in DDoS (distributed denial-of-service) campaigns noted against Dyn (company). Mitigations include deploying in private subnets within environments managed by HashiCorp Vault, Let's Encrypt for TLS termination at proxies, and configuration practices advocated by OWASP.
The reference implementation is written in C and maintained by contributors from companies including Danga Interactive, Facebook, and independent maintainers from communities such as GitHub and Stack Overflow. Client libraries exist for ecosystems supported by PECL, PyPI, RubyGems, Maven Central, and npm. Tooling and complementary projects include proxy layers like Twemproxy (nutcracker), management platforms like Chef, Puppet, Ansible, and deployment examples in cloud marketplaces by DigitalOcean and Linode.
Category:Computer memory Category:Free software programmed in C