Redis is a fast, open source, in-memory key-value data structure store. Redis comes with a set of versatile in-memory data structures which enable you to easily create a variety of custom applications. Leading use-cases for Redis include caching, session management, pub/sub, and leaderboards. It is the most popular key-value store today. It is BSD licensed, written in optimized C code, and supports multiple development languages. Redis is an acronym for REmote DIctionary Server.

Due to its speed and ease-of-use, Redis is a popular choice for Web, Mobile, Gaming, Ad-Tech, and IoT applications that require best-in-class performance. AWS provides Redis support through a fully managed and optimized database service called Amazon ElastiCache for Redis, and also allows customers to run self-managed Redis on AWS EC2.

Amazon EC2 Container Service

Get Started
Benefit_ElastiCache_Performance

All Redis data resides in its server’s main memory, in contrast to most database management systems that store data on disk or on SSDs. By eliminating the need to access disks, in-memory databases such as Redis avoid seek time delays and can access data with simpler algorithms that use fewer CPU instructions. Typical operations require less than a millisecond to execute.

Benefit_ElastiCache_data_structure

Redis allows users to store keys that map to various data types. The fundamental data type is a String, which can be text or binary data with a size of up to 512MB. Redis also support Lists of Strings in the order they were added; Sets of unordered Strings; Sorted Sets ordered by a score; Hashes which store a list of fields and values; and HyperLogLogs to count the unique items in a data set. Nearly any type of data can be stored in memory using Redis.

Benefit_ElastiCache_easeofuse

Redis comes with a number of tools that make development and operations faster and easier, including Pub/Sub, to publish messages to channels, which are delivered to subscribers – great for chat and messaging systems; TTL keys can have a determined Time To Live, after which they delete themselves – useful to avoid filling the database with unneeded data; Atomic counters the ensure that race conditions do not create inconsistent results; and Lua, a powerful but lightweight scripting language.

Benefit_ElastiCache_replication

Redis employs a master-slave architecture and supports asynchronous replication where data can be replicated to multiple slave servers. This can provide both improved read performance (as requests can be split among the servers) and recovery when the primary server experiences an outage.

To provide durability, Redis supports both point-in-time Snapshots (copying the Redis data set to disk) and creating an Append Only File (AOF) to store each data change to disk as it is written. Either method allows rapid restoration of Redis data in the event of an outage.

Benefit_ElastiCache_languageSupport

Over a hundred open source clients are available for Redis developers. Supported languages include Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go and many others.

Redis placed in “front” of another database creates a highly performant in-memory cache to decrease access latency, increase throughput, and ease the load off a relational or NoSQL database.

Redis is highly suited for session management tasks. Simply use Redis as a fast key-value store with appropriate TTL on session keys to manage your session information. Session management is commonly required for online applications, including games, e-commerce websites and social media platforms.

Using the Redis Sorted Set data structure, elements are kept in a list, sorted by their scores. This makes it easy to create dynamic leaderboards to show who is winning a game, or posting the most-liked messages, or anything else where you want to show who’s in the lead.

Redis can measure and, when needed, throttle the rate of events. By using a Redis counter associated with a client's API key, you can count the number of access requests within a certain time period and take action if a limit is exceeded. Rate limiters are commonly used for limiting the number of posts on a forum, limiting resource utilization and containing the impact of spammers.

The Redis List data structure makes it easy to implement a lightweight, persistent queue. Lists offer atomic operations as well as blocking capabilities, making them suitable for a variety of applications that require a reliable message broker or a circular list.

Redis supports the PUB/SUB standard with pattern matching. This allows Redis to support high performance chat rooms, real-time comment streams, and server intercommunication. You can also use PUB/SUB to trigger actions based on published events.

Amazon ElastiCache for Redis is a fully managed Redis-compatible in-memory data structure service.