Memcached is a high performance multithreaded event-based key/value cache store intended to be used in a distributed system.
memcached allows you to take memory from parts of your system where you have more than you need and make it accessible to areas where you have less than you need.
memcached also allows you to make better use of your memory. If you consider the diagram to the right, you can see two deployment scenarios:
- Each node is completely independent (top).
- Each node can make use of memory from other nodes (bottom).
The first scenario illustrates the classic deployment strategy, however you’ll find that it’s both wasteful in the sense that the total cache size is a fraction of the actual capacity of your web farm, but also in the amount of effort required to keep the cache consistent across all of those nodes.
With memcached, you can see that all of the servers are looking into the same virtual pool of memory. This means that a given item is always stored and always retrieved from the same location in your entire web cluster.
Also, as the demand for your application grows to the point where you need to have more servers, it generally also grows in terms of the data that must be regularly accessed. A deployment strategy where these two aspects of your system scale together just makes sense.
The illustration to the right only shows two web servers for simplicity, but the property remains the same as the number increases. If you had fifty web servers, you’d still have a usable cache size of 64MB in the first example, but in the second, you’d have 3.2GB of usable cache.
Experimental TLS support. Brought to you by Netflix, thanks! 🙂
memcached --helpfor usage. Allows mixing TLS and non-TLS listeners (for local monitoring, tests, etc). Has been reviewed and tested but please treat it as experimental. Let us know if you run into any issues!
Requires a minimum OpenSSL version of 1.1.0. OpenSSL’s API changed the API, deprecating some old functions. They also redid the locking code entirely, which scales much better. Old versions should be avoided for security reasons, as well as for not giving good performance in multithreaded servers such as memcached.
See doc/tls.txt for more information.
As of this writing no known memcached clients support TLS; please contact the maintainers/authors of your client software to enquire about adding TLS support. You can also use proxies, routers, and so on.
If you have extremely sensitive performance requirements, take care in deploying this feature.
- Basic implementation of TLS for memcached.
- Improve Get And Touch documentation