Recently, AWS announced the general availability of Amazon MemoryDB for Redis, a new Redis-compatible, durable, in-memory database. The new database service is intended for applications that require microsecond read and single-digit millisecond write performance with data durability and high availability.
Amazon MemoryDB for Redis is compatible with open-source Redis, a popular open-source data store. It allows developers to build applications using the same Redis data structures, APIs, and commands they are familiar with. Furthermore, they get access to advanced features such as built-in replication, the least recently used (LRU) eviction, transactions, and automatic partitioning. And according to an AWS news blog by Danilo Poccia on the GA release of Amazon MemoryDB for Redis, it is compatible with Redis 6.2. It will support newer versions as they are released in open source.
Source: https://aws.amazon.com/memorydb/
It is worth noting that AWS also has another Redis compatible service with Amazon ElastiCache, an in-memory data store ideal for workloads where customers want to accelerate data access from their existing databases. To minimize data loss, they can use Amazon ElastiCache for Redis as a low latency cache in front of a durable database service such as Amazon Aurora or Amazon DynamoDB. However, custom coding is required to keep the cache in sync with the database, and cost is incurred for both cache and database.
In contrast with MemoryDB, customers do not need to add a cache in front of the database to achieve low latency. According to Poccia, it provides data durability, and microsecond read and single-digit millisecond write latencies.
A respondent on a Reddit thread made a significant remark regarding the difference of both AWS Redis offering:
ElastiCache Redis can and does support scaling over multiple instances. You can replicate and/or shard a Redis cluster. What MemoryDB is offering here is durability in exchange for increased write latency.
Developers can create Amazon MemoryDB Cluster using the MemoryDB console, AWS Command Line Interface (CLI), or AWS Software Development Kit (SDK). Note that the MemoryDB clusters run in a virtual private cloud (VPC) - developers must create or select one and add a subnet, for instance, when using the console. Subsequently, in the console, they can, in the Cluster settings, choose the Redis version compatibility and configure the network port, the parameter group that controls the runtime properties of the nodes and clusters, the node type, the number of shards, and the number of replicas per shard. Developers can then continue in the security, advance settings, snapshot, and maintenance sections to complete the cluster configuration and create it.
Many developers use Redis for caching; according to Stack Overflow’s 2021 Developer Survey, it is the most preferred database. Therefore it is not a surprise that AWS and other public cloud vendors like Microsoft and Google provide offering on their cloud platform supporting Redis. Microsoft, for instance, has Azure Cache for Redis, and Google offers Memorystore. However, AWS now takes it a step further with Amazon MemoryDB for Redis.
Barry Morris, GM ElastiCache, Timestream, and DocumentDB at AWS told InfoQ:
Customers building interactive applications have told us that while they love the speed and flexibility of open source Redis data structures and APIs, setting up, scaling, and managing both a caching layer and a durable database is incredibly burdensome. Now, with Amazon MemoryDB for Redis, customers can simplify their architecture with a single database that provides both the ultra-fast data access and durability they need to quickly, easily, and cost-effectively build applications that require microsecond read and single-digit millisecond write performance.
Currently, Amazon MemoryDB for Redis is available in US East (N. Virginia), EU (Ireland), Asia Pacific (Mumbai), and South America (Sao Paulo), with more AWS regions coming soon. The pricing is based on on-demand instance hours per node, the volume of data written to the cluster, and snapshot storage. More details of the pricing are available on the pricing page.