Для лидерборда идеально подходит Sorted Set (ZSET): элементы хранятся с числовым score и автоматически сортируются по нему.
ZADD leaderboard 100 "player1" // добавить игрока с очками
ZADD leaderboard 250 "player2"
ZREVRANGE leaderboard 0 9 WITHSCORES // топ-10 по убыванию
ZRANK leaderboard "player1" // позиция (с 0)
ZINCRBY leaderboard 50 "player1" // добавить очки
LIST - пришлось бы вручную сортировать и перезаписыватьHASH - нет встроенной сортировки по значениюZSET - вставка и поиск по рангу за O(log N)В Go с go-redis: client.ZAdd(ctx, "leaderboard", redis.Z{Score: 100, Member: "player1"}), client.ZRevRangeWithScores(ctx, "leaderboard", 0, 9).