What Is Memcached?
Memcached is an open-source, object-caching system for general memory management.
It is designed to alleviate database load and speed up dynamic Web applications.
Memcached Memory Caching
Memory caching systems store data in a transparent manner with the intention of serving future requests more quickly.
The stored data might be from earlier computations or copies of an original value from another storage location.
Reading a cache for requested, stored data is faster than obtaining it from its original location.
Efficient Caching is Key
Ultimately, computers and networks run much more efficiently with a good cache.
With Memcached, you can take memory from areas of your system where you have a surplus, and use it in places where it's needed.
In addition, Memcached helps you to make better use of your memory, combining resources for more space.
All of the Memcached servers look to one virtual pool of memory. This means your stored items are always kept and retrieved from a consistent location within your Web cluster.
When you experience growth, Memcached continues to scale the aspects of your system together, ensuring that you can access increasing amounts of data without taking a performance hit.
Don't confuse Memcached with "Memcache," which is a name used for a variety of caching methods.
Kinds of Caching Are There?
The name "Memcached" is something of a misnomer. It's a server cache rather than always residing in the requesting computer's memory.
We can distinguish among several types of cache, including:
- Hardware cache
- Server-based cache
- Application cache.
Hardware, Software, and Application Caching
A hardware cache is a fast storage associated with a slower device. A server-based cache holds the data in a computer's memory but requires a network request.
An application cache uses the memory allocated to the application making the request. Memcached is a server-based cache implemented as a key-value store.
A Memcached server isn't as fast as application caching, but it can use more resources.
It can be distributed over multiple instances and be available to multiple clients.
How Does Memcached Work?
Memcached is very simple at its heart.
A client saves data by specifying a unique key and the data value. If there are multiple servers, a hashing algorithm determines which server to use.
A data item can have an expiration time, and a client can delete an item when it's no longer valid.
ASCII vs. Binary
A caching server can use the ASCII or Binary protocol. The ASCII protocol is simpler to work with, but Binary is more efficient.
|Coding and debugging||Easier||Harder|
|Efficiency||Inefficient for non-ASCII data||More efficient|
|Commands supported||Basic set||Many commands|
|Data encoding||Client must encode and decode non-ASCII data||Binary data supported|
Why Choose Memcached Hosting?
Although Memcached is usually deployed in trustworthy networks, some administrators may wish to take added security measures where they would like to retain control over the clients that connect.
In these cases, Memcached can be compiled with Simple Authentication and Security Layer (SASL).
The SASL support needs the binary protocol.
Memcached is known for supporting the cache needs of companies like Wikipedia, Twitter, YouTube and many more.
Memcached Server Support
Memcached is ideal for larger sites with heavy loads.
Memcached is suited to address larger caches that frequently change.
Accommodate Increasing Traffic with Memcached
If you're running a site and you have growing traffic, you can use Memcached hosting to accommodate site load.
It will more than likely get web pages to load faster for visitors.
Simultaneously, a Memcached server will transfer your data to persistent storage without affecting site performance.
Server RAM for Memcached
In default packages, a hosting provider may set aside a small amount of RAM for the cache, depending on the Linux distribution or operating system.
It varies between 64 MB - 512 MB.
With Memcached hosting, you can give more memory to Memcached depending on the size of your deployment.
Memcached's simplicity promotes ease of deployment and solves many issues for website owners facing large data caches.
Looking for a terrific deal on Memcached hosting?
SiteGround - rated #1 by our readers - provides fast site loading speeds with Memcached. We've arranged for our readers to save up to 67% on SiteGround plans. Use this exclusive discount link to get the deal.
Memcached Pros and Cons
Here's a summary of some of Memcached's main pros and cons.
Pros of Memcached
- Can be used to cache information that is difficult to gather
- Web pages load faster
- Easy to scale
- Simple to deploy
- Supports most CMS platforms.
- Difficult to delete Memcached entries
- Sharing resources require reconfiguring the server
- Volatility (crash of server instance wipes any data stored within the session)
- No further value besides being a value store/ in-memory key
- Not much documentation support.
How Much Does Memcached Hosting Cost?
Businesses just need to set up a website with a web host that offers Memcached in its package, so they don't have to spend a penny.
Like any hosting, your resource needs with Memcached hosting will grow as your site experiences more cache, media, and content.
Your hosting plan should accommodate these additional requirements without incurring extra fees.
How to Install Memcached
Software needs to use a Memcached client API to take advantage of it.
Applications which have heavy database needs will benefit the most.
Applications that do their own data caching won't always get much of a boost from Memcached, but the potentially larger store may help them.
Most CMS programs don't provide Memcached support by default. On WordPress for example, you'll have to install a third-party plugin and then enable Memcached from the cPanel.
If the Memcached service is activated correctly by the hosting provider, the plugin will be able to use it to store frequently executed queries inside.
Summary of Memcached
Memcached will serve most data requests generated by your site. To achieve that, the collective size of the key/store must suffice to cache the majority of the requested data objects from the site to achieve an acceptable performance rate.
Check the capacity of Memcached with your hosting provider.
Main Memcached Features
- Server-based system
- Distributed cache
- Free and open source
- Can store any type of data
- Minimal security; deploy only on protected local networks
The Top Three Memcached Hosts
Here are three providers that you should seriously consider when developing a Memcached-based site.
SiteGround and Memcached: Excellent Guidance and Customer Support, Plus CDN
SiteGround gives extensive instructions on its website for using Memcached with various web applications.
Its proprietary SuperCacher can use Memcached or several other caching engines to accelerate the Apache web server's performance.
SiteGround screenshot via WhoIsHostingThis
Customer support is excellent and available around the clock.
Multiple datacenters and the Cloudflare CDN add to page delivery speed, and it guarantees 99.9% uptime.
Liquid Web and Memcached: Managed VPS and Dedicated Solutions
LiquidWeb supports Memcached in its VPS plans and dedicated server plans.
Customers have to install it themselves, but instructions for all supported servers are available on the website.
LiquidWeb screenshot via WhoIsHostingThis
LiquidWeb managed hosting includes 24/7 support with guaranteed initial response times, and it guarantees 100% uptime.
It's not the least expensive option, but it gives good value.
WebFaction: Memcached Hosting for Developers
WebFaction boasts "hosting for developers," and it provides detailed technical information on using Memcached.
It provides SSH access, and you can run any tools of frameworks of your choice, in many programming languages.
WebFaction for Memcached
The main drawback is the lack of live support by phone or chat. It uses datacenters around the world.
Looking for the right Memcached host?
A2 Hosting scored #1 in our recent speed and performance tests. Right now you can save up to 50% on their plans. Use this special discount link to get the deal.
Other features in Technologies
memcached Frequently Asked Questions
- What is Memcached?
Memcached is a caching program designed to minimize database load.
- Who developed Memcached?
Brad Fitzpatrick developed Memcached for LiveJournal in 2003. Anatoly Vorobey later rewrote the program from the original Perl into C. As open-source software, it continues to be developed by a team of contributors.
- Do I have to use my server space for caching?
No. It is possible to set up a separate machine to be used as your Memcached server. Before doing this, you should check with your host to see if they are configured for this and to ensure proper security measures are in place.
- What are the minimum system requirements for running Memcached?
Memcached can run on nearly any hardware, because it is designed to use very few resources. Of course, the higher processor speed and more RAM available, the faster it will perform.
Performance will vary depending on the number of active clients, available servers, and so on. You should consult the Memcached Wiki for specific strategies for optimizing performance.
- Can I use Memcached for my database?
Memcached does not recommend using it on a database host. Instead, they advise giving your database as much RAM as possible. This way if cache misses happen, your indexes and data are already in memory.
- Can I use memory swapping with Memcached?
It is not recommended, as swapping will result in poor performance.
Instead, you should assign a certain percentage of physical memory (usually a few percent more than you anticipate needing), to a Memcached server. For best performance you should monitor your server if it is using swap, and make adjustments to your allocations as necessary.
- How do I configure Memcached?
Memcached is a command line application, so you will need to review the documentation available with the installation and on their website for an up-to-date list of Memcached arguments.
You will also need SSH access to your server.
- How do I install Memcached onto my own server?
You can install Memcached using one of many pre-compiled packages available on their website, or you can download the source code and compile it yourself.
They recommend using a package whenever available, as these have been tested. See the Memcached website for specific information pertaining to your operating system.
- Once Memcached is installed, how can I monitor it?
Memcached contains a number of statistical counters to monitor system performance and health.
There are also third-party monitoring tools available on the Memcached Wiki site. Some of them feature a command line interface, like Memcached, while others provide a graphical user interface to simplify the user experience.
- How can I contribute to Memcached?
Memcached is an actively developed application, so there are several ways you can contribute to it.
You can join discussions with other community members and developers via their mailing list or IRC channel.
There are a number of technical conferences available for developers and users.
You can also contribute to the Memcached Wiki site by emailing your suggestions or asking for editing access through the mailing list.
- What should I consider before upgrading to a new version of Memcached?
While each release of Memcached is thoroughly tested, it is important to run a new release in a QA or dev environment first, then test it on a single server in production. If everything works fine, roll out to the rest of your servers one at a time.
- What sort of load can Memcached handle?
That will depend on the system it's running on.
For a fast machine with a high speed network, it should easily handle over 200,000 requests per second. With some adjustments or faster hardware, it can handle much more than that.
Even on slower machines, it should easily be able to accomplish a few hundred requests per second.
- How many clients can a Memcached site support?
Memcached uses an event-based architecture, so high numbers of clients should not slow it down. It is successfully working for companies with hundreds of thousands of connected clients.
Of course, Memcached can only work as hard as your hardware will allow. You need enough spare RAM for each connected client, so even though an individual client only requires a very small amount of RAM, hundreds of thousands of clients will require a lot of RAM.
Other factors, such as thread limitations and local ports, may affect your ability to handle a large number of clients. System tuning and additional adjustments can help.
- How do release cycles work?
Three weeks after each stable release, Memcached releases a -rc1 for the next release. Additional -rc's typically follow once or twice a day, depending on the number of fixes.
After three days, unless additional bugs are still being reported, a new stable version is released. This usually results in a new stable version approximately every month.
While any of the core developers may contribute changes, the contributor is not allowed to be a part of the review process for their own changes.