Joining multiple Redis servers into a Redis cluster is a challenging task, especially because this emerging in-memory NoSQL database supports complex data structures and commands required by modern web applications, in high-throughput and low latency (sub-millisecond) conditions.
Some of those challenges are:
- Performing Union and Intersection operations over List/Set/Sorted-Set data types across multiple shards and nodes
- Maintaining consistency across multi-shard/multi-node architecture, while running (a) a SORT command over a list of hash keys; or (b) a Redis transaction that includes multiple keys; or (c) a LUA script with multiple keys
- Creating a simple abstraction layer that hides the complex cluster architecture from the user’s application, without code modifications and while supporting infinite scalability
- Maintaining a reliable and consistent infrastructure in a cluster configuration
Due to these complexities, the Redis cluster developed by the open source community is not yet available. Furthermore, it is expected that when available, it will not support all Redis commands and will require rewriting some of the application’s code. An interim solution may be sharding the dataset at the application level, but this is complex and may be limited in functionality.
The Redis Cloud was built from the ground up to provide a Redis cluster of any size while supporting all Redis commands.
We distribute your dataset across multiple shards in multiple nodes of our Redis cluster and constantly monitor your shards to ensure optimal performance. When needed, we add more shards and nodes to your dataset so it can continuously and limitlessly scale.
We have also added to our Redis cluster replication, data persistence, backup and auto-failover capabilities that guarantee your dataset is always up and running. Furthermore, we have fully automated all operational activities, including launching or taking down nodes, upgrading software, scaling, data persistence configuration and recovering from failures, so you can lean back, forget nodes and clusters and let us do the heavy lifting.