Redis Labs' RediSearch 2.0 Delivers Real-Time Enterprise Search, Query and Indexing

Redis Lab is RediSearch 2.0, an upgrade to its secondary index and query engine. The software will let organizations build modern, scalable apps with interactive search experiences by automatically indexing Redis datasets -- without changing their app.

Tags: apps, cloud, query, real-time, Redis Labs, scale, search,

Redis Lab has released an upgrade to its secondary index and query engine. The new RediSearch 2.0 lets organizations build modern, scalable apps with interactive search experiences by automatically indexing their Redis datasets without changing their application.


RediSearch 2.0 introduces a brand new architecture that makes it more than twice as fast as RediSearch 1.6, according to Redis Labs company execs. It also adds support for Redis Labs' Active-Active geo-distribution and Redis on Flash


RediSearch 2.0 allows customers to quickly scale to query and index billions of documents on hundreds of servers. Redis on Flash makes this more cost-effective.  


RediSearch 2.0 can be deployed globally by leveraging Redis Enterprise's Active-Active technology. This delivers five-nines (99.999%) availability across multiple geo-distributed replicas. It also can execute read/write operations at the speed of local RediSearch deployments - without conflict resolution. 


.To promote high-performance, RediSearch uses in-memory data structures and indexing algorithms. The combination supports real-time transactional data, relevance-based searches and analytical queries. 


RediSearch's rich query language enables structured queries as well as full-text searches. Data can be filtered by properties, numeric ranges, and geographical distances. 


Redis Labs' approach to its unified search engine also simplifies a company's data infrastructure for developers, so they won't need to deal with flipping back and forth between query languages, data models and bolt-on search engines.


"As customers increasingly rely on Redis Enterprise as their real-time data platform, they want to dynamically query and search their data residing in Redis. RediSearch now enables organizations to quickly build indexes which require low latency querying and full-text search. All of this is delivered with the familiar ease of scaling and speed of Redis," said Pieter Cailliau, Director of Product Management at Redis Labs.


A great blog post from Redis Labs product manager Peter Cailliau shared details of the RediSearch architecture

Having a rich query-and-aggregation engine in your Redis database enables a wide variety of new use cases that extend well beyond caching. RediSearch lets you use Redis as your primary database in situations where you need to access data using complex queries. Even better, it preserves Redis’ world-class speed, reliability, and scalability, and doesn’t require you to add complexity to the code to let you update and index data.


For RediSearch 2.0 we re-architected the way indices are kept in sync with the data. Instead of having to write data through the index (using the FT.ADD command), RediSearch now follows the data written in hashes and synchronously indexes it. This re-architecture comes with several changes in the API, which we discussed in a previous post when RediSearch 2.0 Hit Its First Milestone.


This new architecture brings two main benefits. First, it’s now easier than ever to create a secondary index on top of your existing data. You can just add RediSearch to your existing Redis database, create an index, and start querying it, without having to migrate your data or use new commands for adding data to the index. This drastically lowers the learning curve for new RediSearch users and lets you create indexes on your existing Redis databases—without even having to restart them.


In addition to implementing a new way to index data, we also took the index out of the keyspace. This enables Redis Enterprise’s Active-Active technology, which is based on conflict-free replicated data types (CRDTs). 


Merging two inverted indices conflict-free is difficult, but Redis Labs already has a proven CRDTs implementation of Hashes. So the second big benefit of this new architecture is making RediSearch 2.0 even more scalable. Because RediSearch now follows Hashes and the index was moved out of the keyspace, you can now run RediSearch in an Active-Active geo-distributed database.

Another great joint post from Redis Lab’s Ashish Sahu and Emmanuel Keller explained the use cases and enterprise benefits. They detailed RediSearch use by GoMechanic, India’s largest network of car service centers.

Modern organizations are capturing large amounts of structured and unstructured data. Too often, however, this data is locked in slow, disk-based databases that don't support real-time experiences for modern applications. RediSearch eliminates these performance bottlenecks by allowing users to easily index their Redis datasets and then query and aggregate the data in a fully distributed manner in real-time, at the speed of Redis. 


RediSearch brings more sophisticated data modeling to Redis by providing several indexing strategies for the value part of the key, including full-text, geo-location, numbers, and tags. Without indexes, Redis must perform a SCAN operation for every query, which can be extremely slow and inefficient. And creating and maintaining these indexes manually is complex and error-prone. RediSearch maintains these indexes for the user and allows you to query across data structures in a clustered database.


The addition of RediSearch to your technology stack simplifies the data infrastructure, extends applications with rich search experiences, and unlocks the power of analytics in Redis. Developers no longer need to flip back and forth between multiple technologies, query languages, data models, and bolt-on search engines to create modern applications.


Our customers are using RediSearch to not just accelerate their legacy applications but also to create their next-generation real-time applications. GoMechanic, for example, uses RediSearch to search across a database of 10 million spare parts. Many e-commerce apps are using RediSearch to provide interactive search across millions of products in their catalogs and using fuzzy search to give users auto-complete suggestions.

Speaking to that last point about customers, GoMechanic vice president of engineering Prasenjit Singh, said the following: "GoMechanic needed a fast data layer to search across 10 million spare parts and power its customer service chats. RediSearch on Google Cloud was not only four times faster than our existing database but also extremely robust, easy to scale, and inexpensive,"


RediSearch allows users to quickly create indexes on datasets in multiple data types in Redis, with support for JSON and Streams on the way.  


Under the covers, RediSearch uses what execs call "an incremental indexing approach' to deliver lightweight index creation and deletion. The rich query language lets users get raid query results, perform complex aggregations, and filter by properties, numeric ranges, and geographical distance. RediSearch also uses a 'fuzzy' search to support auto-complete suggestions.