When it comes to NoSQL databases, you’ve probably heard of a few: MongoDB, Cassandra, Redis, Aerospike… But when it comes to choosing a NoSQL database, it can be a bit difficult to pick between them. Each product is different, and each is the right choice for a certain given situation.
Determining which NoSQL database to use requires looking at the business use case that needs solving. Today we check out two of these similar NoSQL databases, Aerospike and Redis.
Both are implemented in C and open source, so you should be able to get started with either (or both) very easily. They also both nominally persistent and run in-memory. In fact, the two are very similar, which can make the decision between them even more difficult.
Check out their key differences below.
While Aerospike is a pure key-value store, Redis, too is a key-value store, but something a little different and unique – a data structures server, which means different types of key values can be stored if you so wish. This means not only strings, but other structures such as lists, sets, hashes, and bit arrays. This can be an extremely powerful feature if you know how to use it!
[See Also: Agile Development Basics: A Quick Refresher]
When it comes to performance – hundreds of thousands of operations per second, both Redis and Aerospike are both right up there. They’re comparable in the number of operations that are performed, and outshine the competition, as they are both designed for speed.
While Aerospike is optimized for data storage on SSD (they wrote their own specific hardware drivers), Redis supports it but was designed to be used with RAM.
New benchmarking tests from Redis Labs, showing extremely high performance on new Samsung NVMe-based SSDs combined with DRAM (in an 80/20 split) show that they are dedicated to squeezing higher performance out of Redis. There are also implementations of NVMe SSD / Aerospike configurations getting about, which show a similar story.
These two are both fast! – It’s just the hardware that you’re using that you’ll need to think about if you’re optimizing for speed.
Sharding is the process of splitting installations across multiple servers when there isn’t enough room to run all on the one instance. Aerospike does this automatically, and as of April, 2015, Redis does too, with Redis Cluster. Redis Cluster allows up to 1000 nodes in a cluster, with automatic sharding, which means the implementation is now far more scalable than it used to be.
Aerospike was designed to work with large datasets – it has been developed with this specifically in mind, and it offers linear scalability.
So, despite the updates to Redis via Cluster, the scalability features of Aerospike still outshine Redis, which makes this database a preferred option for large datasets.
If you are just after a small database running on one core, then Redis would be perfect.
[See Also: Why Use STOMP?]
For those who are running on more than one server, or more than one master and slave, and who are concerned about node drop outs, Aerospike is a cleverer self-healer than Redis. It gets back up and running faster, while maintaining performance across the other nodes in the cluster. It simply performs better over a network that may not be perfect, and let’s face it – when are they ever?
Redis and Aerospike offer similar high-speed performance. Aerospike is great for large databases, such as customer big data stored for a retail giant’s ecommerce platform, or unstable networks where you’re used to outages. Redis is good for a small, defined job, and would be good for building a small workplace IM platform, although Aerospike would probably do the job here too.
Everything you need to know about outsourcing technology developmentAccess a special Introduction Package with everything you want to know about outsourcing your technology development. How should you evaluate a partner? What components of your solution that are suitable to be handed off to a partner? These answers and more below.