Используйте sorted set (ZSET) в Redis по ключу-счёту: ранг и top-N становятся встроенными операциями O(log N), так что вы никогда не сортируете миллионы строк на каждый запрос. ZSET автоматически держит элементы упорядоченными по счёту; это ровно то, чем является лидерборд.
Архитектура
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)
