This book covers the use of Redis, an in-memory database/data structure server.

open all | close all

7.1 Searching in Redis

In a text editor or word processor, when you want to search for a word or phrase, the
software will scan the document for that word or phrase. If you’ve ever used grep in
Linux, Unix, or OS X, or if you’ve used Windows’ built-in file search capability to find
files with words or phrases, you’ve noticed that as the number and size of documents
to be searched increases, it takes longer to search your files.

Unlike searching our local computer, searching for web pages or other content on
the web is very fast, despite the significantly larger size and number of documents. In
this section, we’ll examine how we can change the way we think about searching
through data, and subsequently reduce search times over almost any kind of word or
keyword-based content search with Redis.

As part of their effort to help their customers find help in solving their problems,
Fake Garage Startup has created a knowledge base of troubleshooting articles for user
support. As the number and variety of articles has increased over the last few months,
the previous database-backed search has slowed substantially, and it’s time to come up
with a method to search over these documents quickly. We’ve decided to use Redis,
because it has all of the functionality necessary to build a content search engine.

Our first step is to talk about how it’s even possible for us to search so much faster
than scanning documents word by word.