Redis is an in-memory data store. It’s predominantly a key/value store, so it does not have features in many relational databases. It can be used as a simple database, a cache, or as a pub/sub system. Since it’s all in-memory, it is very fast, but it also requires alot of memory.
Amazon Web Services, Microsoft Azure, and Google Cloud Platform all provide their own managed Redis services. The available versions and features vary from provider to provider. Let’s take a closer look.
First off, I want to prefix this comparison by saying that in the case of all three providers, you can host Redis on your own instances/VMs. This comparison only includes managed services, and does not include such host-your-own implementations.
Amazon Web Service’s offering is part of their ElastiCache service along with memcached.
Microsoft Azure’s Redis service is called Azure Cache for Redis.
Google Cloud Platform’s Redis service is called Cloud Memorystore.
Comparing the hourly cost in “US East” regions, AWS comes away with the least expensive way to run a Redis server.
|Cheapest Hourly Cost||$0.017||$0.022||$0.049|
|Machine Type||cache.t3.micro||Basic C0||Basic M1|
At the time of this writing, the latest version of Redis is 5.0.7.
AWS allows you to run Redis 5.0 servers, whereas Azure and Google Cloud Platform only allow Redis 4.0 servers.
|Versions Available||2.6.13 - 5.0.6||4.01||3.2 - 4.0|
1Azure does not allow you to choose the Redis version to deploy. Azure Cache for Redis will always use the “generally available” version for new servers, and automatically upgrade existing servers.
Production systems require Redis servers to be highly-available. All three providers support replicated servers. So if one server fails, there’s one waiting on standby.
But Redis cluster, which is a different method of HA, is only supported on AWS and Azure.
|Redis Cluster Supported||Yes||Yes||No|
All three cloud providers allow you to import and export your Redis RDB data to the respective object storage services.
Only ElastiCache supports native backups on all servers.
|Native Backups||ElastiCache snapshots||Data Persistence (Enterprise tier only)||No|
|Import/Export||Export snapshot (RDB) to S3 bucket||RDB snapshot to page blob||RDB snapshot to Cloud Storage bucket|
Each cloud provider has it’s own infrastructure-as-code service and Redis is supported by all three. In addition, third-party IaC services, such as TerraForm, support Redis.
|Native Infrastructure-as-code support||Supported in AWS CloudFormation||Supported in Azure Resource Manager||Supported by Google Cloud Deployment Manager|
Redis itself does not have user-based security. It trusts that if a network connection can be established, then the client can be trusted. For this reason, Redis servers should not be open to the internet.
All three cloud providers use private network security to protect the data in your Redis server. By placing your Redis server in a private network, only other servers in the same network can access your Redis data.
Also, all three cloud providers provide security of the server itself via each’s IAM implementation.
|Data protection||Private VPC||Private network||Private network|
For Skeddly, I’m using an
m4.large Redis cluster with two nodes on Amazon ElastiCache. The monthly cost is about $232.
Amazon ElastiCache appears to provide the least expensive managed Redis servers.
If you want to control the version of Redis being used, don’t use Microsoft’s Azure Cache for Redis.
If you require Redis cluster, don’t use Google Memorystore.
Aside from that, the implementations themselves are Redis (or atleast Redis-compatible).
Most likely, the choice depends on where your existing infrastructure is. But if you’re just starting out, or are already using multiple cloud providers, then you can use this information to help choose.
Skeddly is the only all-in-one scheduling and automation service for your cloud. Only Skeddly can lower your cloud bills and manage your cloud backups in one place. Customers are happier knowing that Skeddly is working for them in the background.