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

    11.2 Rewriting locks and semaphores with Lua

    When I introduced locks and semaphores in chapter 6, I showed how locks can reduce
    contention compared to WATCH/MULTI/EXEC transactions by being pessimistic in heavy
    traffic scenarios. But locks themselves require two to three round trips to acquire or
    release a lock in the best case, and can suffer from contention in some situations.

    In this section, we’ll revisit our lock from section 6.2 and rewrite it in Lua in order
    to further improve performance. We’ll then revisit our semaphore example from section
    6.3 to implement a completely fair lock while also improving performance there.

    Let’s first take a look at locks with Lua, and why we’d want to continue using locks
    at all.