Update solution on February 28, 2020

Redis Enterprise

Redis Enterprise is an in-memory, distributed (automated partitioning), NoSQL database with a key-value store as its underpinning. The core open source and commercial capabilities are shown in Figure 1. However, this description does Redis a disservice because the company’s approach to modules – see Figure 2 – is such that, in reality, Redis is better thought of as a multi-model database that can be used to support document processing, graph traversals, stream processing , machine learning, time-series, search and so forth. It is also possible to write your own modules.

Fig 01 Redis core capabilities and options

Fig 02 Redis Modules

From a transactional perspective, Redis Enterprise is ACID compliant within a single cluster that is not geographically distributed. Both synchronous and asynchronous replication are supported and therefore both Active/Active and Active/Passive deployments, in the former case relying on CRDT-based (conflict-free replicated data types) strong eventual consistency.

Customer Quotes

“We have a very high concurrency: about 40,000 or more at peak times logging into our system to utilise our services. We’ve had very good results with fetching data in pre-populating forms and the user experience has been very good.”
India’s National Informatics Centre

“Redis Labs delivered on its commitments to demonstrate how its application can scale and provide the level of performance needed for high speed, high volume transaction processing. The Redis Labs solutions teams were committed to finding a solution to the problem that we presented and they were dedicated and diligent in following up on providing the solution
that we needed.”

Fortune 100 Financial Services

From the perspective of time-series data the key issue is how Redis modules work. Note that these are embedded into the database engine and not just layered on top. The relevant options are illustrated in Figure 2 and, of these, it is the time-series module, along with RedisGears and possibly RedisAI, that are of interest here, though Redis Streams may be useful in supporting in high ingestion rates.

RedisTimeSeries provides built-in aggregation functions such as calculating minima, maxima, sums, averages and so on. More significantly, you can label data – based on timestamps – on either an individual or global basis and then you can use those labels to support analytics. This will be particularly useful in Internet of Things (IoT) environments where you are doing initial analytics at the edge. Additional capabilities include the ability to compress data across different time series functions, specific time-series indexing, support for time buckets, programmable retention policies, and downsampling (reducing the sampling rate so that you can determine the granularity – typically of sensor data – you require). There are also  built-in Prometheus and Telegraf interfaces and visualisation support through Grafana.

All Redis modules are designed to interoperate with one another but RedisGears takes this one step further by facilitating inter-module transformations. It provides a serverless environment and allows you to aggregate data across multiple Redis database instances and react to activity based on pre-defined triggers. In other words, you get event-driven data transformations from one model to another, in real-time, in memory.

Then there is RedisAI. This enables the deployment of machine learning models and model serving, with the database supporting relevant languages such as Python, R and Scala plus deep learning support with the ability to embed TensorFlow, PyTorch and TorchScript models into your analytic workflows.

Finally, Redis is well-known for its performance, not least because it has historically run everything in memory. However, as the company moves away from focusing on caching use cases into wider environments, it can no longer assume that all of its clients can afford the amount of memory that may be required. For this reason, warm (as opposed to hot) data may be stored on SSDs and the company has been working with closely with Intel on its Optane Persistent Memory technology.

Apart from its performance and scalability – which are obviously major factors – the most outstanding thing about Redis Enterprise is the flexibility that its support for different data structures and modules provides. From a time-series perspective the relevant module has some significant features. However, we would like to see more geo-spatial support as the product is limited to supporting latitude and longitude, which may be enough for some IoT applications, but it doesn’t offer the breadth of capability that some other databases in this space do. Conversely, Redis offers many other functions that competitive time-series offerings do not do.

The Bottom Line

It is interesting to observe how Redis has managed to leverage its initial success as a caching technology, into something more general-purpose. It is now a major contender across a range of functionality and we expect that to be also true with respect to time-series.

Related Company

Connect with Us

Ready to Get Started

Learn how Bloor Research can support your organization’s journey toward a smarter, more secure future."

Connect with us Join Our Community