{
  "id": "leaderboard",
  "title": "Redis leaderboard",
  "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/",
  "summary": "Build ranked leaderboards with Redis sorted sets and user metadata",
  "tags": [
    "docs",
    "develop",
    "stack",
    "oss",
    "rs",
    "rc"
  ],
  "last_updated": "2026-04-24T15:18:45-05:00",
  "children": [
    {
      "id": "redis-py",
      "summary": "Implement a Redis leaderboard in Python with redis-py and sorted sets",
      "title": "Redis leaderboard with redis-py",
      "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/redis-py/"
    },
    {
      "id": "nodejs",
      "summary": "Implement a Redis leaderboard in JavaScript with node-redis and sorted sets",
      "title": "Redis leaderboard with node-redis",
      "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/nodejs/"
    },
    {
      "id": "go",
      "summary": "Implement a Redis leaderboard in Go with go-redis and sorted sets",
      "title": "Redis leaderboard with Go",
      "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/go/"
    },
    {
      "id": "java-jedis",
      "summary": "Implement a Redis leaderboard in Java with Jedis and sorted sets",
      "title": "Redis leaderboard with Java and Jedis",
      "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/java-jedis/"
    },
    {
      "id": "java-lettuce",
      "summary": "Implement async and reactive Redis leaderboards in Java with Lettuce and sorted sets",
      "title": "Redis leaderboard with Java (Lettuce)",
      "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/java-lettuce/"
    },
    {
      "id": "dotnet",
      "summary": "Implement a Redis leaderboard in C# with StackExchange.Redis and sorted sets",
      "title": "Redis leaderboard with .NET",
      "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/dotnet/"
    },
    {
      "id": "php",
      "summary": "Implement a Redis leaderboard in PHP with Predis and sorted sets",
      "title": "Redis leaderboard with PHP",
      "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/php/"
    },
    {
      "id": "ruby",
      "summary": "Implement a Redis leaderboard in Ruby with redis-rb and sorted sets",
      "title": "Redis leaderboard with Ruby",
      "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/ruby/"
    },
    {
      "id": "rust",
      "summary": "Implement sync and async Redis leaderboards in Rust with redis-rs and sorted sets",
      "title": "Redis leaderboard with Rust",
      "url": "https://redis.io/docs/latest/develop/use-cases/leaderboard/rust/"
    }
  ],
  "page_type": "content",
  "content_hash": "a7c67f505908d6375e830fd12950230fe347fe26ca1a412248ce677331ef1d31",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "This guide family shows how to build a leaderboard with Redis sorted sets and per-user metadata."
    },
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Leaderboards are a natural fit for Redis because sorted sets keep members ordered by score while still allowing fast updates and range queries.\n\nThis pattern works well when you need to:\n\n* Track scores for players, users, teams, or other ranked entities\n* Fetch the top `n` entries quickly\n* Show entries around a specific rank position\n* Keep only the highest-ranked entries, such as the top 100\n* Store richer user details separately from the ranking score"
    },
    {
      "id": "available-implementations",
      "title": "Available implementations",
      "role": "content",
      "text": "* [redis-py](https://redis.io/docs/latest/develop/use-cases/leaderboard/redis-py) - Build a Python leaderboard with sorted sets, user metadata hashes, and a local interactive demo\n* [node-redis](https://redis.io/docs/latest/develop/use-cases/leaderboard/nodejs) - Build a JavaScript leaderboard with sorted sets, user metadata hashes, and a local interactive demo\n* [go-redis](https://redis.io/docs/latest/develop/use-cases/leaderboard/go) - Build a Go leaderboard with sorted sets, user metadata hashes, and a local interactive demo\n* [Jedis](https://redis.io/docs/latest/develop/use-cases/leaderboard/java-jedis) - Build a Java leaderboard with sorted sets, user metadata hashes, and a local interactive demo\n* [Lettuce](https://redis.io/docs/latest/develop/use-cases/leaderboard/java-lettuce) - Build async and reactive Java leaderboards with sorted sets, user metadata hashes, and a local interactive demo\n* [.NET](https://redis.io/docs/latest/develop/use-cases/leaderboard/dotnet) - Build a C# leaderboard with sorted sets, user metadata hashes, and a local interactive demo\n* [Rust](https://redis.io/docs/latest/develop/use-cases/leaderboard/rust) - Build sync and async Rust leaderboards with sorted sets, user metadata hashes, and a local interactive demo\n* [PHP](https://redis.io/docs/latest/develop/use-cases/leaderboard/php) - Build a PHP leaderboard with sorted sets, user metadata hashes, and a local interactive demo\n* [Ruby](https://redis.io/docs/latest/develop/use-cases/leaderboard/ruby) - Build a Ruby leaderboard with sorted sets, user metadata hashes, and a local interactive demo"
    }
  ],
  "examples": []
}
