Redis is awesome!
November 22, 2019
Redis is awesome!
Score 9 out of 10
Overall Satisfaction with Redis
We're using Redis in many ways and across different departments in the organization. The most simple use case is to store locks so the backend services can reject duplicated API requests. A little more advanced use case is to use it as a buffer for queues of messages or requests. We're also exploring ways to use the new Graph type to support Data Science models in development.
- Redis has many data types that suit a variety of use cases such as caching, message queues, graphs.
- Redis is an open-sourced tool with a growing community, as well as 3rd party support (Amazon managed version) if you need additional help with the set-up.
- Both the clients and the command line tool are easy to use and well-documented.
- Scaling has always been an issue with Redis. Routing to shards is not automatic.
- There's no GUI for managing the keys and values stored in Redis. The command-line tool is useful but not friendly to non-engineering users.
- The data types as in data structures have many choices, but inside of the key-value pair, the content is always stored as a string.
- Redis is very easy to set up, not only as a stand-alone service but also in a local Docker container. This makes local development and testing extremely easy.
- Redis is considerably cheaper than a fully managed key-value store such as DynamoDB.
- Redis can provide the cache layer a lot of services need, which improves the performance of those services.
The variety in data types really made it stand out. As an organization, we are able to share the same Redis cluster, but different users are using it in very different ways, whether it is Hashes, Streams, or Graphs. And all users are currently happy with the performance, as the in-memory implementation makes it extremely fast.
- Product Features
- Product Usability
- Prior Experience with the Product
What made us go with Redis was that the product is easy to set up and easy to use. Although not having GUI was not ideal, but the command-line tool and the native clients gave us the essentials to start developing products with it.
Redis is really fast to be used as a cache. And we actually have found some unexpected good use cases for it in our organization. For example, our integration tests used to take a long time to run each time, after putting the tests inside of Redis, the tests now run multiple times faster!
DynamoDB is a fully managed key-value store by Amazon. It provides more powerful indexing to the tables, which certainly increases the performance if searching is what you need. However, it is also a lot more expensive to use compared to Redis. If your use case is more on the basic side, Redis would be good enough and save you a lot of money.
Redis is a tool when you want to get a key-value store up and running in production quick without a lot of constraints. And it will keep the customer happy for a considerably long time. However, if the scaling is critical, Redis might not be the best choice available in the market.