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 8: Building a simple social network

    This chapter covers

    • Users and statuses
    • Home timeline
    • Followers/following lists
    • Posting or deleting a status update
    • Streaming API

    In this chapter, we’ll cover the data structures and concepts necessary to build a system
    that offers almost all of the back-end-level functionality of Twitter. This chapter
    isn’t intended to allow you to build a site that scales to the extent of Twitter, but the
    methods that we cover should give you a much better understanding of how social
    networking sites can be built from simple structures and data.

    We’ll begin this chapter by talking about user and status objects, which are the
    basis of almost all of the information in our application. From there, we’ll discuss
    the home timeline and followers/following lists, which are sequences of status messages
    or users. Continuing on, we’ll work through posting status messages, following/
    unfollowing someone, and deleting posts, which involves manipulating those lists. Finally, we’ll build out a fully functioning streaming API with web server to
    encourage users of the social network to use and play with the data.

    In the last chapter, we spent much of our time building an ad-targeting engine that
    combined user-entered data (the ads and their prices) with click behavior data in order
    to optimize ad earnings. The ad-targeting engine was query-intensive, in that every
    request could cause a lot of computation. In this Twitter-like platform, we’ll do our best
    to perform as little work as possible when someone is interested in viewing a page.

    To get started, let’s build the basic structures that will hold much of the data that
    our users are interested in.