As a managed database service with multiple supported engines, Amazon ElastiCache has a wide range of uses, including
Performance acceleration Database limitations are often a bottleneck for application performance. By placing Amazon ElastiCache between an
application and its database
tier, database operations can be accelerated.
Cost reduction Using ElastiCache for database performance acceleration can significantly reduce the infrastructure needed to support the database. In many cases, the cost savings outweigh the cache costs.
Expedia was able to use ElastiCache to reduce provisioned DynamoDB capacity by 90%, reducing total database cost by 6x.
Processing time series data Using the Redis engine, ElastiCache can rapidly process
time-series data, quickly selecting newest or oldest records or events within range of a point-in-time.
Leaderboards Leaderboards are an effective way to show a user quickly where they currently stand within a gamified system. For systems with large numbers of gamers, calculating and publishing player ranks can be challenging. Using Amazon ElastiCache with the Redis engine can enable high-speed at scale for leaderboards.
Rate limitation Some APIs only allow a limited number of requests per time period. Amazon ElastiCache for Redis engine can use incremental counters and other tools to throttle API access to meet restrictions.
Atomic counter Programs can use incremental
counters to limit allowed quantities, such as the maximum number of students enrolled in a course or ensuring a game has at least 2 but not more than 8 players. Using counters can create a
race condition where an operation is allowed because a counter was not updated promptly. Using the ElastiCache for Redis atomic counter functions, where a single operation both checks and increments the counter's value, prevents race conditions.
Chat rooms and message boards ElastiCache for Redis supports
publish-subscribe patterns, which enable the creation of
chat rooms and message boards where messages are automatically distributed to interested users. ==Deployment options==