e-Book - Redis in Action

This book covers the use of Redis, an in-memory database/data structure server.
  • Foreword
  • Preface
  • Acknowledgments
  • About this Book
  • About the Cover Illustration
  • Part 1: Getting Started
  • Part 2: Core concepts
  • Part 3: Next steps
  • Appendix A
  • Appendix B
  • Buy the paperback

    Chapter 6: Application components in Redis

    This chapter covers

    • Building two prefix-matching autocomplete methods
    • Creating a distributed lock to improve performance
    • Developing counting semaphores to control concurrency
    • Two task queues for different use cases
    • Pull messaging for delayed message delivery
    • Handling file distribution

    In the last few chapters, we’ve gone through some basic use cases and tools to help
    build applications in Redis. In this chapter, we’ll get into more useful tools and
    techniques, working toward building bigger pieces of applications in Redis.

    We’ll begin by building autocomplete functions to quickly find users in short
    and long lists of items. We’ll then take some time to carefully build two different
    types of locks to reduce data contention, improve performance, prevent data corruption,
    and reduce wasted work. We’ll construct a delayed task queue, only to augment
    it later to allow for executing a task at a specific time with the use of the lock we just created. Building on the task queues, we’ll build two different messaging systems
    to offer point-to-point and broadcast messaging services. We’ll then reuse our
    earlier IP-address-to-city/-country lookup from chapter 5, and apply it to billions of
    log entries that are stored and distributed via Redis.

    Each component offers usable code and solutions for solving these specific problems
    in the context of two example companies. But our solutions contain techniques
    that can be used for other problems, and our specific solutions can be applied to a
    variety of personal, public, or commercial projects.

    To start, let’s look at a fictional web-based game company called Fake Game Company,
    which currently has more than a million daily players of its games on YouTwit-
    Face, a fictional social network. Later we’ll look at a web/mobile startup called Fake
    Garage Startup that does mobile and web instant messaging.