score를 key로 하는 Redis sorted set(ZSET)을 사용하십시오: rank와 top-N이 O(log N) 내장 연산이 되므로 요청마다 수백만 row를 정렬할 필요가 없습니다. ZSET은 멤버를 score 순으로 자동 유지합니다. 그것이 바로 리더보드입니다.
아키텍처
text
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)
