Implement a Leaderboard Feature in a Game
Explore how to implement a leaderboard feature in a game application by using Redis sets and sorted sets. Learn to manage user registration, simulate game scoring, and retrieve top player rankings efficiently with REST endpoints in Go.
Application overview
This application exposes REST endpoints for managing a hypothetical game with multiple players and tracking the top players by score on a leaderboard.
We can interact with the application by executing the following operations:
Add/register a user in the game by sending an HTTP
POSTrequest: This is done by first checking if the user already exists in the set using aSIsMemberand invokingSAddif they don’t. If the user already exists, an error response is returned.Start a game simulation where registered players score and accrue points: During the simulation, all game players are queried from the set using
SMembers. Each player is added to a sorted set using theZIncrBymethod, along with the user name and the randomly generated score.Query the top five players and their scores at a given point in time: The
ZRevRangeWithScoresmethod is used to make sure that the names of the top players and their scores are returned in descending order.