Amazon Elasticcache is a service that makes it easy to deploy, operate, and scale open-source, in-memory data store in the cloud. The service improves the performance through caching where web applications allow you to retrieve information from fast managed in-memory data stores instead of relying entirely on slower disk-based solutions.
Caching — Additional memory enables our device to store frequently accessed information in memory instead of having to request the information from the hard drive
Overview of in-memory caching
Amazon Elasticache Engines
Amazon Elasticache for Memcached — A high-performance, submillisecond latency Memcached-compatible, in-memory, key-value store service that can either be used as a cache, in addition to a data store.
Amazon Elasticache for Redis — An in-memory data store designed for high performance and again providing sub-millisecond latency on a huge scale to real-time applications.
Memcached: Caching, Session Store
Redis: Caching, Session Store, Chat and Messaging, Gaming Leaderboards, Geospatial, Machine Learning, Media Streaming, Queues, Real-Time Analytics
Components of ElasticCache
Node — A fixed-sized chunk of secure, network-attached RAM
Shard — Redis Shard(node group) a group of up to 6 ElasticCache nodes
Redis Cluster — A group of 1–90 Redis shards
Memcached Cluster — A collection of one or more cache nodes
Common use cases
- Online Gaming industry — where it’s vital statistical information like a scoreboard is presented as quickly and consistently as possible to all the players in the game
- Social network website — Storing temporary session information in session management
- Real-time analytics — used in conjunction with other services such as Amazon Kinesis to ingest, process, and analyze data at scale
In-memory Cache — Often users are scanning these websites for information like who currently has the high score in a game, what is your friend up to, or guidance on the best restaurant.
Elasticache should never be used to store your only version of data records since a cache is designed to be a temporary data store so when data persistence is necessary like when working with primary data records or when we need write performance rather than read performance.