際際滷

際際滷Share a Scribd company logo
Creating Gaming Leaderboards
Using Redis
Ronny L坦pez
Technical Lead Backend
Ronny.lopez@socialpoint.es
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
3
4
5
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
Architecture
 Scalable to serve several million active users
 Performance is a must

7
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
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
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

More Related Content

Creating Game Leaderboards with Redis

  • 1. Creating Gaming Leaderboards Using Redis Ronny L坦pez Technical Lead Backend Ronny.lopez@socialpoint.es
  • 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
  • 3. 3
  • 4. 4
  • 5. 5
  • 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
  • 7. Architecture Scalable to serve several million active users Performance is a must 7
  • 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