I have come across Riak being used as Key-Value store in major corporations. Wondering what are its distinguished features from popular Key-Value store like Redis?
Riak (pronounced "ree-ack") is a distributed NoSQL key-value data store that offers high availability, fault tolerance, operational simplicity, and scalability.
Redis is different compared to other key-value stores because of the following: Redis is a different evolution path in the key-value databases where values can contain more complex data types, with atomic operations defined on those data types.
redis is an in-memory, key/value store. Think of it as a dictionary with any number of keys, each of which has a value that can be set or retrieved. However, Redis goes beyond a simple key/value store as it is actually a data structures server, supporting different kinds of values.
The biggest difference is the "typical usage" for each. Redis is typically used as a high-speed in-memory cache for applications, whereas Riak is typically used as a scalable highly available persistent data store / database. Each has their strengths, and weaknesses, but it is similar to comparing apples and oranges.
Redis focuses on speed, inherent data structures, and does offer capabilities to cluster instances as master/slave and shard data, but with extra configuration.
Riak focuses on easy scalability, data safety, and hides the sharding / consistency models from most developers, but at the cost of higher latency since it writes to disk instead of to memory, and handles shards/replicas internally.
In the end it depends on what your engineering needs are.
Adron Hall has a good in-depth writeup here.
Disclosure: I work for Basho.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With