Utilisez un sorted set Redis (ZSET) indexé par score : le rang et le top-N deviennent des opérations natives en O(log N), donc vous ne triez jamais des millions de lignes par requête. Un ZSET garde les membres ordonnés par score automatiquement ; c'est exactement ce qu'est un leaderboard.
Architecture
Game svc ──ZADD score──▶ Redis ZSET (sorted by score) ──ZREVRANGE 0 99──▶ Top-100 API
│
├─ ZREVRANK user ─▶ "your rank" (around-me: rank±5)
└─ AOF/RDB + async ─▶ Postgres (durable source of truth)
