1 – Introduction
Redis Labs provides a commercially backed implementation of the Redis data structure. It has two solutions, RedisLabs in the Cloud which is the product more used and on-premises solution called RLEC (Redis Labs Enterprise Cluster).
In both cases, Redis Labs adds core functionality to open-source Redis for clustering and HA, and advanced capabilities for data processing over and above traditional key-value implementations. It also provides MemcacheD Cloud like ElasticCache. In the other hand, most hosted services like Amazon, Azure or Heroku offer standard cloud instances pre-loaded with open source Redis. This approach does not provide great advantage over the do-it-yourself approach. In contrast, Redis Cloud adds a breakthrough technological layer to open source Redis, while fully supporting it. The technology visualizes multiple cloud servers into an infinite pool of memory, consumed by users according to the actual size of their datasets.
2 – Evolution from ElasticCache to RedisLabs
Redis AWS Elastic Cache
Amazon Elastic Cache is the platform included in Amazon Web Services. With this platform is easy to deploy, operate and use Redis in the Cloud. The clustering architecture of ElasticCache has a master-slave solution with Multi-AZ.
In this sense, for a lot of people was enough and works fine. Nevertheless, ElasticCache is expensive, secondly has limitations to scale up and down the Redis cluster. Moreover we need to consider another point, the Amazon instances architecture is not optimal for Redis because Redis is based on a single-threaded, so scaling CPU vertical is not optimum, so is better to scale in horizontal, for that we need a Redis Cluster solution and not a heavy increase instance size in master-slave architecture. Amazon uses a sledgehammer to crack a nut.
More inconveniences about Elastic Cache: For example, ElasticCache is using a Redis 2.8 version that is deprecated and now the stable version is 3.2. This stable version contains significant changes: memory optimizations, geovariables, clustering and others improvements. [ https://raw.githubusercontent.com/antirez/redis/3.2/00-RELEASENOTES ]
Although the scalability problem we pointed, Elastic Cache recently announced hot scaling up for Redis nodes [ http://amzn.to/1pKWKKo ]
RedisLabs
An important point to consider is that Amazon main business is not Redis, however Redislabs is mainly focused in Redis. Moreover, Redislabs has Salvatore Sanfilippo, who is the creator of Redis and the company’s lead for open source development, steers the evolution of OSS Redis together with a dedicated team of Redis engineers. In order to adapt Redis for enterprise use, Redis Labs developed an additional technology layer that encapsulates the open source software and provides an enhanced deployment architecture for Redis, while supporting the open source API.
RedisLab has a good clustering architecture called Redis Cluster solution with a unique endpoint based on the Open Source solution. So the Backend Software only needs to point to a unique endpoint to read and write data, in contrast to use a master-slave architecture with ElasticCache. Good point.
Talking about the price, as we have been mentioning previously, this was an important aspects to consider and to decide to migrate finally to RedisLabs.
Also we have another Redislab product that is the RLEC on-promise solution. Also the RLEC solution can be installed with Amazon AMI [ https://aws.amazon.com/marketplace/pp/B016WJQY84?ref=cns_srchrow ] or in your on-promise servers or wherever you want using an RPM.
3 – Redis PaaS comparison and benchmarks
Official Redislabs comparison:
https://redislabs.com/redis-comparison
Benchmark comparison:
A company called Altoros created an interesting Redis Benchmakrs. [ Redis as a Service Performance Benchmark: Redis Cloud, ElastiCache, openredis, RedisGreen, and Redis To Go, By Vladimir Starostenkov, R&D Engineer at Altoros ]. They designed a scenario to evaluate Redis Performance. So, in this Benchmark we can see the most importants Redis solutionts in the Cloud.
In summary to the Altoros documentation, RedisLabs outperformed the rest of the RaaS offerings in most use cases. The most important thing that you could see in the benchamarks is, Redislabs was the only solution that still scaled linearly in the combined scenario.
Our own small comparative.
Elastic Cache |
Redislabs |
|
Redis Version |
2.8 (opensource) |
Like 3.2 (commercially backed implementation) |
Company |
Amazon AWS |
RedisLabs |
Persistence |
RDB – each hour |
AOF – every second RDB |
Snapshots |
yes |
yes |
Number of databases per node |
16 |
1 |
MultiAZ |
yes |
yes |
Clustering |
No |
yes |
Sharding |
no |
By Hash-Tag or RegEx |
Database creating time |
minutes |
seconds |
Maximum Database connections |
65.000 |
infinite |
VPC compatiblity |
integrated |
yes |
AWS Security group |
yes |
Yes (you need to configurate) |
Password / SSL Authentication / Encrypthion |
no |
yes |
Hot Scalability |
Up (recent feature) |
Up / Down |
Redis.conf configuration |
Yes |
Limited |
Alerts |
CloudWatch |
Easy and simple to configure |
Monitoring / Graphs |
Yes |
Yes |
API Management |
Yes |
No |
Clouds |
AWS |
AWS, GCE Azure, IBM, SoftLayer |
AWS Regions |
All |
AWS/us-east-1 |
Price |
We pay for instance size |
We pay for data size * MultiAZ = Cost data size x2 |