Skip to content
Pablo Rodriguez

Overview Of Caching

A cache is a high-speed data storage layer that stores a subset of data so that future requests for that data are served up faster.

Key Benefits:

  • Store regularly accessed data in a more optimized way
  • Increase data retrieval performance
  • Reduce the need to access the underlying slower storage layer

The speed at which you deliver content affects the success of your application. Caching provides a way to increase the speed of data retrieval and reduces the frequency in which the main database or storage layer is accessed.

Unlike a database, which usually stores data in a complete and durable form, a cache transiently stores a subset of data. Caching facilitates faster access to data because the primary purpose of a cache is to increase the performance of data retrieval by reducing the need to access the underlying, slower storage layer.

Caching gives you the ability to efficiently reuse previously retrieved or computed data. Caching is an optimization strategy that will help with cost reduction and performance enhancement. For the end user, caching provides faster performance.

To illustrate how a cache improves performance, consider the example of making a trip to a hardware store.

If the store is miles away, it takes you considerable effort to go there every time you need something. Instead, you can store the supplies that you use regularly in a tool shed close to your house. Therefore, it takes you less time to access these supplies than it would to go all the way to the hardware store.

In this example, the tool shed is analogous to a cache. You keep the tools you need often in a nearby location. In caching, this nearby location can have different forms, such as edge locations and in-memory databases.

Static and Frequently Accessed Data

For caching to provide meaningful benefits, the data should be static and frequently accessed, such as a personal profile on a social media site. Static content includes HTML, CSS, JavaScript, images, and video files.

Computationally Intensive Results

Compute-intensive workloads that manipulate data sets, such as recommendation engines and high-performance computing simulations, benefit from caching through an in-memory data layer.

Complex Database Queries

Time-consuming, frequently used, or complex database queries often create bottlenecks. Queries that perform joins on multiple tables are slower and more expensive than queries on single tables.

  • Reduces response latency
  • Reduces cost
  • Alleviates the load on the origin (data source)
  • Provides predictable performance
  • Improves availability
  • Requires additional engineering
  • Requires someone to determine how to cache data and deal with stale data based on the business use case

Amazon CloudFront - Static Caching (Edge Caching)

Section titled “Amazon CloudFront - Static Caching (Edge Caching)”
  • Retrieve content from the nearest edge location
  • Uses caching servers to store content closer to users
  • A content delivery network (CDN) provides the ability to use its global network of edge locations

Amazon ElastiCache - Database Caching (Data Caching)

Section titled “Amazon ElastiCache - Database Caching (Data Caching)”
  • Retrieve content from an in-memory database layer
  • The cache acts as an adjacent data access layer to your database
  • Common techniques include lazy loading and write-through methods

ElastiCache is a web service that you can use to deploy, operate, and scale an in-memory data store or cache in the cloud. The service improves the performance of web applications by giving you the ability to retrieve information from fast, managed, in-memory data stores instead of relying entirely on slower disk-based databases.

Caching provides a fundamental optimization strategy that improves application performance while reducing costs. Understanding when and how to implement caching solutions is crucial for building efficient cloud architectures.