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

open all | close all

7.2 Sorted Indexes

In the previous section, we talked primarily about searching, with the ability to sort
results by referencing data stored in HASHes. This kind of sorting works well when we
have a string or number that represents the actual sort order we’re interested in. But
what if our sort order is a composite of a few different scores? In this section, we’ll talk
about ways to combine multiple scores using SETs and ZSETs, which can offer greater
flexibility than calling SORT.

Stepping back for a moment, when we used SORT and fetched data to sort by from
HASHes, the HASHes behaved much like rows in a relational database. If we were to
instead pull all of the updated times for our articles into a ZSET, we could similarly
order our articles by updated times by intersecting our earlier result SET with our
update time ZSET with ZINTERSTORE, using an aggregate of MAX. This works because
SETs can participate as part of a ZSET intersection or union as though every element
has a score of 1.