The leaderboard adds a whole new dimension to your video game. It's a means of building rivalry between players and deepening their engagement with the game. But, like most things in gaming, building a leaderboard comes with its own technical challenges.
2. Leaderboards
Effective way to show where a user stands within a gamified
system
Absolute leaderboards incentivize
Relative leaderboards avoid disengagement of players at
lower end of rankings
Several type of rankings (weekly, monthly, friends, )
2
6. Requirements
Add member
Remove member
Update member score
Find member score
Find member rank
Associate data to members (Name, Alliance, etc)
Get slices of the ranking (for pagination)
6
8. Implementation
Redis data structure server
Sorted set data structure
Different sorted sets for different kinds of rankings
Redis hash data structure for member associated data
Lua scripting for aggregating in-memory data
(Sorted) Sets operations (union, intersection, etc)
8
9. Challenges
Horizontal scaling
It is not possible to shard a dataset with a single huge key like a
very big sorted set
Two-phase commits if you want to execute a transaction
among different data stores
9
10. Summary
Redis is the right tool for the job, but datasets can not be bigger
than memory
Exceptional performance (more than 8K leaderboard ops per
second in a single instance)
Easy to use and understand technology
Mature and open source
10