Why Redis? Or, why any technology? Such questions are often mumbled under the breath or asked by the more brave, cynical, or knowledgeable when encountering any new technology or service. Sometimes, the answer is obvious, the technology or service offers features and functionalities that meet an immediate need or solves a vexing problem. In most situations, the reasons for adopting a technology may not be as clear-cut or as apparent or are cloaked in sometimes hyperbolic or indecipherable marketing jargon. Depending on your needs, Redis falls somewhere closer to the obvious end of the spectrum instead of a marketing sales pitch. You may already know and have used Redis for some uses, such as meeting a data storage need or service requirement for an application, but you may not be aware of all that Redis can do or how other people are using Redis in their own organizations. Redis, best known for its speed, is not only fast in its execution but also fast in the sense that solutions built with Redis have fast iterations because of the ease in configuring, setting up, running, and using Redis.
The growing popularity of Redis, an open source key-value NoSQL technology, is a result of Redis's stability, power, and flexibility in executing a wide range of data operations and tasks in the enterprise, REmote DIctionary Server (Redis), is used by a diverse set of companies from start-ups to the largest technology companies such as Twitter and Uber, as well as by individuals and teams in government, schools, and organizations. We'll start this chapter with a short survey of a few popular design patterns for Redis and then, provide practical advice on determining whether Redis is the right choice for you.
We'll then go through a detailed example of how Redis a legacy metadata format used by public and academic libraries – including some museums – to illustrate Redis's flexibility and power with just three data structures and an intentional key design. Finishing this chapter off, we'll touch upon recently added functionalities and commands to Redis.