September 14, 2019
Score 10 out of 10
Overall Satisfaction with Redis
We use Redis as a cache for our Django application, and as the result storage for Celery, our distributed task runner.
- Redis is widely applicable, so knowledge of it transfers between use-cases
- Its widely used, so there are cache backends for common frameworks, like Django in our case
As an in-memory database, it is very fast, and useful for a wide range of data needs, including caching. The variety of data types provided are capable of transforming it from a simple key-value store to one that is powerful enough to run fairly advanced applications while keeping that awesome speed advantage.
- Product Features
- Product Reputation
The single most important factor in our decision was the price and availability, as other products were able to serve our primary need of a key-value store. But we have been happy that it is able to grow far beyond that original use-case.
We have relied on Redis in our application since the beginning, so it's difficult to compare what it would have been like without it. However, we find that Redis is a consistently stable and simple data store that gives us the features we need to communicate between processes effectively and efficiently. This enables us to build on top of this code, as we know that we can trust it.
Redis is well suited for caching, as well as distributed coordination between workers. It doesn't work extremely well for cases where the data is highly interconnected, though RedisGraph may be a good solution to that (I'm not able to review it, because I haven't used it). Its variety of data types makes it possible to do some rather advanced things easily, and when combined with scripting, there are very few hard limitations on what is possible.