Redis: Awesome in-memory key-value distributed CAP compliant store
October 09, 2017

Redis: Awesome in-memory key-value distributed CAP compliant store

Nitin Pasumarthy | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with Redis

We use Redis for low latency repetitive point queries. To break it down:
  • Low latency: As it is in memory, saves on I/O
  • Repetitive: As part of ETL we use it to address resolution, .i.e. given an address, find a representative lat long for it. As millions of rows are ETLed every day, there is high chance that they repeat. Having in-memory helps again
  • Point queries: WHERE age BETWEEN 10 and 30 is a range query and WHERE age = 15 is a point query. We use it only for point queries
  • When dataset is small enough to fit in-memory and get full benefits of reduced I/O
  • Need of rich data structures for complex querying
  • Speed of in-memory store and durability by disk at the same time
  • Declarative querying like SQL
  • Tools for monitoring and identifying performance bottlenecks
  • Key schema design can be tricky and heavily impacts the performance (leading to key scans)
  • We use it all the time for point queries and it worked well
  • Though it is in-memory it is distributed and durable
  • We need high availability for ETL and low read latency accelerates even further
Haven't extensively worked with MemSQL but it follows SQL interface which makes it instantaneously familiar to many non-computer scientists. Both are in-memroy and durable. However due to it NoSQL characteristics might scale better in a distributed environment, but haven't tested it how MemSQL solved this problem (if at all)
  1. For its simplicity is API and very familiar powerful data structures for any Computer Science engineer.
  2. To try out its always evolving Redis Modules space
  3. Due to its low footprint, would also like to try for embedded space
Good for:
  • Low latency queries are a must
  • Frequent point queries as it is a key-value store
  • Use awesome Redis Modules (Redis Search, Redis Neural Net, Redis ML, Redis-Secondary, Redis Graph)
Not suitable for (as far as I know):
  • When values are complex objects and not simple data structures. Document stores are better for those work loads
  • Huge data and not feasible (due to budget constraints) to scale up RAM