Amazon MemoryDB for Redis is a Redis-compatible, durable, in-memory database service that delivers ultra-fast performance. It is purpose-built for modern applications with microservices architectures.
Amazon MemoryDB is compatible with Redis, a popular open source data store, enabling customers to quickly build applications using the same flexible and friendly Redis data structures, APIs, and commands that they already use today. With Amazon MemoryDB, all of your data is stored in memory, which enables you to achieve microsecond read and single-digit millisecond write latency and high throughput. Amazon MemoryDB also stores data durably across multiple Availability Zones (AZs) using a distributed transactional log to enable fast failover, database recovery, and node restarts. Delivering both in-memory performance and Multi-AZ durability, Amazon MemoryDB can be used as a high-performance primary database for your microservices applications eliminating the need to separately manage both a cache and durable database.
Redis is a fast, open source, in-memory, key-value data store. Developers use Redis to achieve sub-millisecond response times, enabling millions of requests per second for real-time applications in industries like gaming, ad-tech, financial services, healthcare, and IoT. In 2021, Redis was named Stack Overflow’s “most loved database” for the fifth consecutive year.
Redis offers flexible APIs, commands, and data structures like streams, sets, and lists, to build agile and versatile applications. MemoryDB maintains compatibility with open source Redis and supports the same set of Redis data types, parameters, and commands that you are familiar with. This means that the code, applications, drivers, and tools you already use today with Redis can be used with MemoryDB so you can quickly build applications.
MemoryDB stores your entire dataset in memory to deliver microsecond read latency, single-digit millisecond write latency, and high throughput. It can handle more than 13 trillion requests per day and support peaks of 160 million requests per second.
Developers building with microservices architectures require ultra-high performance as these applications can involve interactions with many service components per user interaction or API call. With MemoryDB, you enable extreme low latency to deliver real-time performance for end users.
In addition to storing your entire data set in memory, MemoryDB uses a distributed transactional log to provide data durability, consistency, and recoverability. MemoryDB stores data across multiple AZs so you can achieve fast database recovery and restart. You can use MemoryDB as a single, primary database service for your workloads requiring low-latency and high throughput instead of separately managing a cache for speed and an additional relational or nonrelational database for reliability.
You can scale your MemoryDB cluster to meet fluctuating application demands: horizontally by adding or removing nodes, or vertically by moving to larger or smaller node types. MemoryDB supports write scaling with sharding and read scaling by adding replicas. Your cluster continues to stay online and support read and write operations during resizing operations.
Easy to use
Getting started with MemoryDB is easy. Just launch a new MemoryDB cluster using the AWS Management Console, or you can use the AWS CLI or SDK. MemoryDB database instances are pre-configured with parameters and settings appropriate for the node type select. You can launch a cluster and connect your application within minutes without additional configuration.
Monitoring and metrics
MemoryDB provides Amazon CloudWatch metrics for your database instances. You can use the AWS Management Console to view over 35 key operational metrics for your cluster including compute, memory, storage, throughput, active connections, and more.
Automatic software patching
MemoryDB automatically keeps your clusters up-to-date with new updates, and you can easily upgrade your clusters to the latest versions of Redis.
MemoryDB runs in Amazon VPC, which allows you to isolate your database in your own virtual network and connect to your on-premises IT infrastructure using industry-standard, encrypted IPsec VPNs. In addition, using MemoryDB’s VPC configuration, you can configure firewall settings and control network access to your database instances.
With MemoryDB, data at-rest is encrypted using keys you create and control through AWS Key Management Service (KMS). And, clusters created with AWS Graviton2 node types include always-on 256-bit DRAM encryption. MemoryDB supports encryption in-flight using Transport Layer Security (TLS).
Authentication and authorization
MemoryDB uses Redis Access Control Lists (ACLs) to control both authentication and authorization for your cluster. ACLs enable you to define different permissions for different users in the same cluster.
Integration with Kubernetes (developer preview)
AWS Controllers for Kubernetes (ACK) for Amazon MemoryDB enables you to define and use MemoryDB resources directly from your Kubernetes cluster. This lets you take advantage of MemoryDB to support your Kubernetes applications without needing to define MemoryDB resources outside of the cluster or run and manage in-memory database capabilities within the cluster. You can download the MemoryDB ACK container image from Amazon ECR and refer to the documentation for installation guidance.
Note: ACK for Amazon MemoryDB is available as a developer preview and is not recommended for production use. Send us your feedback on our Github page.
MemoryDB offers data tiering as a lower cost way to scale your clusters up to hundreds of terabytes of capacity. Data tiering provides a price-performance option for MemoryDB by utilizing lower-cost solid state drives (SSDs) in each cluster node in addition to storing data in memory. It is ideal for workloads that access up to 20% of their overall dataset regularly, and for applications that can tolerate additional latency when accessing data on SSDs.
When using clusters with data tiering, MemoryDB is designed to automatically and transparently move the least recently used items from memory to locally attached NVMe SSDs when available memory capacity is consumed. When you access an item stored on SSD, MemoryDB moves it back to memory before serving the request. MemoryDB data tiering is available on Graviton2-based R6gd nodes. R6gd nodes have nearly 5x more total capacity (memory + SSD) and can help you achieve over 60% storage cost savings when running at maximum utilization compared to R6g nodes (memory only). Assuming 500-byte String values, you can typically expect an additional 450µs latency for read requests to data stored on SSD compared to read requests to data in memory.