Redis is goooood!!!
Rahul Chaudhary profile photo
December 13, 2018

Redis is goooood!!!

Score 10 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with Redis

Redis is a basic, but extremely fast, key-value storage. We made a decision to use Redis because our use case didn't require a full blown database. We needed something to hold the data temporarily and loss of that data wouldn't lead to any issues. Redis was perfectly fitting our use case, and since then we are a bunch of happy Redis users.
  • Being a non-SQL database, it does not require any structure. Perfect for unstructured data like key-value pairs.
  • Redis is extremely fault tolerant. As soon as we write a record, it gets saved to the disk, without any performance issues.
  • Redis is very lightweight. In docker it takes less than 30MB, so it is so easy to run multiple containers in cluster without taking too much power.
  • Redis has a very good query API, and they are in their website each operation is clearly mentioned with its time complexity. This gives you a clear picture of performance. We didn't in fact do any performance testing because we trusted their site with all the information.
  • Redis has a very strong community around it. We have never found an issue for which a solution didn't exist beforehand.
  • A cluster in Redis was a little hard to understand and deploy, but this is a one time thing to learn, no worries.
  • Redis has small learning curve. Just a couple of small Linux type commands, and that's pretty much it. For this reason, everyone was on-boarded to use Redis almost within a week.
  • Since Redis has good language support, we were comfortable using Redis for Java as well as NodeJs.
  • Redis is overall fast. When we compare Redis with an actual database, Redis wins just because of how fast and easy it is.
Redis is so widely used, we haven't really experimented with other technologies in this space. But we know a lot about AWS, so we can make a rough judgement. Redis in itself is very fast, but it can be slow because of network traffic. You would ideally want your [cache] server to be as close as possible, which is why I guess I prefer to have my own Redis cluster in local VPC rather than AWS backed caching solution.
We will definitely continue using Redis because:

1. It is free and open source.
2. We already use it in so many applications, it will be hard for us to let go.
3. There isn't another competitive product that we know of that gives a better performance.
4. We never had any major issues with Redis, so no point turning our backs.
Redis is extremely well suited for storing key-value kind of data. Flat and static values are around which they are built. There is no headache of indexing, or maintaining formats like other databases have.

I can also vouch for Redis's pub/sub notification. You can basically set expiration or event hooks around your keys, and Redis will trigger a notification for those events.

But Redis is ill-suited for treating it as a proper database. For instance, this is not a replacement for elasticsearch or mongo.

To assess if you need Redis, in my opinion, just think if you need to query values. If yes, don't use redis. If you are only concerned with key operations, then go with Redis.

Redis Feature Ratings

Performance
10
Availability
10
Concurrency
10
Security
Not Rated
Scalability
10
Data model flexibility
10
Deployment model flexibility
10