Redis Review
March 19, 2019
Redis Review
Score 9 out of 10
Vetted Review
Verified User
Overall Satisfaction with Redis
Redis is, at a high-level, an in-memory data store largely setup at a key-value store (although it can persist data to disk, and supports more complex data structures). Redis is generally used as part of a cache layer and has a number of additional use cases that it fills well (messaging and task queues).
- Very, very fast due to the in-memory data store, which makes it highly scalable on rational-sized hardware.
- Fills a number of different use cases: can build message broadcast, task queues, sorted sets (i.e. leaderboards), and database caching all with the same tool.
- A robust third-party ecosystem of deployment options (like AWS) and libraries in a number of common programming languages.
- Can be difficult to set up as it scales past a single write node.
- While Redis can preserve state by writing to the file system in a couple of ways, it can still be cumbersome to standup a cluster with history.
- Use as a write-through cache saves significant load from hitting the database, lowering costs.
- Use as a message broker is a great choice for building scalable microservices.
- High-performance, in-memory engine supports very large loads on inexpensive cloud hardware.
- Product Features
- Product Usability
- Product Reputation
- Third-party Reviews
Redis is well-known for its rock-solid reputation and performance; enough so that PaaS vendors like Amazon Web Services have added support for easily configured and scalable Redis clusters via Amazon Elasticache. In our experience, Redis has consistently hit the performance benchmarks we've expected and is consistently amongst the most reliable layers in our product deployment architectures.
- MySQL and PostgreSQL
As we perform a lot of deployments to AWS, we have the option of easily using a cache layer with either Memcache or Redis. We almost always choose Redis as it can solve more problems in production than Memcache in our experience. There is some overlap between what Redis can do and what can easily be achieved with a traditional RDBMS, so it's important to ensure you really need the benefits that Redis has before adding new complexity to software architecture.