Redis is great when you use it correctly.
August 27, 2019
Redis is great when you use it correctly.
Score 6 out of 10
Vetted Review
Verified User
Overall Satisfaction with Redis
We use Redis in many capacities. We use it as a caching layer, as a shared heap, as a datastore for lock contention, as a queue, and as a primary datastore. It provides low latency storage that can be used to persist data between web requests. The data structures available allow us to use it to manage contended data in a safe and predictable fashion.
- Fast key value store
- Serializable concurrent usage (by virtue of being single-threaded)
- Wide library support
- Failover is terrifying and its safety guarantees are misleading
- Large sets (> 500k entries) have noticeable performance degradation on what is advertised to be a O(1) query pattern
- Hardware costs are high
- It allows us to better leverage DynamoDB and other large scale databases. We can do the contentious logic in Redis and then flush to our larger datastore.
- Using Redis as a shared heap allows us to easily implement standards such as Oauth2 and other stateful protocols without having to do session pinning. We can treat our application servers as stateless and enjoy the simplicity that provides.
- Using Redis as a write-back cache to absorb spiky writes to our Postgres database has led to cost savings.
- Price
- Product Usability
- Prior Experience with the Product
- Vendor Reputation
- Existing Relationship with the Vendor
The flexibility around a shared pool of servers where we can deploy N isolated Redis databases is really valuable to us. We can have the general isolation we desire without having to rack up costs.
We prefer DynamoDB whenever possible. We have more predictable performance at the tail end, better isolation and cheaper costs per GB of storage.