On the modern web, it’s relatively rare for sites to be built from the ground and it’s rarer still for a site of any substantial size to be built without using a content management system of some sort, whether that’s WordPress or Joomla and the like or Magento and its brethren for eCommerce sites.
While dynamic content management systems make creating and managing sites much easier, and reduce the need to have web developers involved at each stage in the process, they are much slower than a static site. Dynamic sites rely heavily on databases like MySQL and use server-side scripting languages like PHP to generate their pages. If every page that a site serves requires multiple database queries to be executed, then the time a site visitor waits to get the page they’ve requested can be longer than is acceptable.
It’s common knowledge that conversion rates drop as load times increase. Bounce rates rise as visitors become frustrated with waiting for the information they want. In a world where dynamic content management systems are essential for the deployment of complex sites and fast load times are essential for maximizing conversion rates, caching technology comes to the fore. One of the most popular caching applications used for dynamic sites is Memcached.
What is Memcached?
Memcached is an open source distributed memory caching system. In short, Memcached sits in front of a database server and caches the results of queries in memory so that the next time that data is requested, it can be returned much more quickly than if a fresh set of database queries had to be executed. Because the data is stored in RAM, rather than on the disk, data can be returned a lot faster than it could from a hard drive.
Memcached is used heavily by some of the biggest online services, including the social media giants Facebook and Twitter, as well as large-scale content publishers like Wikipedia.
Memcached is a simple key-value store. Relational databases store their information in tables and each lookup on those tables takes some proportion of CPU time and disk IO. That’s part of what makes them slow. Memcached’s simple storage of objects in memory means it can be retrieved and returned to the web server in a fraction of the time.
By reducing lag times, implementation of Memcached can help to prevent the conversion rate erosion that slow load times cause, particularly on busy sites. In addition to increasing revenue making sites speedier, Memcached can also help make more efficient use of a server’s resources, reducing the impact of load spikes and the necessity of premature hardware upgrades.