Are you curious about the difference between open source Redis and Redis enterprise?
Of course, Redis Enterprise is a hosted service that runs Redis db on behalf of their customers, while open source Redis is available for anyone to use. However, there's also a key difference between open source and enterprise in how the clusters are implemented. In order to understand the difference we need to know what Redis Clusters are.
Redis Clusters are a cluster of Redis nodes that automatically shard data across all nodes, so we can think of them as a data sharding solution. The way data is sharded in Redis is by having dynamic hash slots, so empty slots can be moved around freely. For example:
Node A contains: Hash slots 0-5000
Node B contains: Hash slots 5001-10000
Node C contains: Hash slots 10001-16383
If we wanted to add a new node, we can just take empty slots from A, B, and C to create a new node.
Clusters contain one master node, and replicas/partitions of the master node. Each node has a view of the cluster configuration and its place within that configuration, which provides a horizontal scaling ability. You can just add more nodes as capacity requirements increase. These features of Redis clusters provide us with better performance, reliability of data, and prevents a single point of failure.
While there is little to no difference in performance between open source and enterprise Redis, there is a difference in how the clusters are implemented. Open source Redis has it’s own protocol when communicating to the database, and client libraries need to specify where each key goes. The enterprise version is the opposite, where client libraries can remain minimal because they use a proxy based solution when communicating with the database.
This means that Redis enterprise can be compatible with several different programming languages without breaking. Since it is protocol based, it is a lot easier to migrate data on the enterprise version compared to the open source version. Being able to migrate data without a hitch is a good thing to take in to consideration when choosing between the open source and enterprise version for your product.
When considering the result of these two different implementations of Redis clusters, we can see that enterprise is really useful for large systems, while the open source version is a good fit for hobbyists or small solutions.
Enterprise not only has a good scaling solution, but also gives you access to their support team. This is crucial for fixing your problems quickly when things go down hill on your app, so having that kind of technical support can help during those critical events.
Regardless if you're monitoring open source Redis or Redis enterprise, you can monitor your db with MetricFire. Check out our article on Monitoring Redis clusters with Prometheus for the full tutorial on how to do it. You can see the dashboards showing metrics pushed from Redis, as well as get the exact code snippets for implementing it on your own. Use the MetricFire free trial to start using Prometheus without any set up.
Interested in trying out Redis? There’s a hosted version of Redis called Redistogo, and it does exactly what it’s name suggests. If you just want to test Redis itself, you can get it up and running really fast with Redistogo. On the free plan, you can hook up a hosted Redisdb (with 5MB memory) to your app and test for any improvements or changes. The account provides you a URL with a port to send and receive data to and from. It also has a console to run Redisdb syntax for debugging or testing purposes.