redis-rank
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.1 • Public • Published

    📊 redis-rank

    Manage real-time leaderboards using Redis

    Build Status codecov codecov

    Features

    • Lightweight: minimal dependencies, only ioredis is required
    • Performance: guaranteed at most one trip to Redis on each function call*, taking advantage of ioredis's pipelining and Lua scripts
    • Drop-in replacement: use any existing sorted set as a leaderboard
    • Clear interface: Promise-based & provides TypeScript definitions
    • Periodic leaderboards: create recurring leaderboards: daily, weekly, monthly, etc or use a custom cycle
    • Combine leaderboards: create a matrix of leaderboards: update, filter and retrieve multiple entries in a single call
    • Export: export your leaderboards for long-term storage
    • Tested: 100% code coverage

    Quick Start

    ⚙️ Install

    $ npm install redis-rank ioredis

    Redis 2.6.12 or newer is required. The package ioredis is a peer dependency and must be installed separately.

    🔗 Import and connect

    ES5

    const Redis = require('ioredis');
    const { Leaderboard, PeriodicLeaderboard, LeaderboardMatrix } = require('redis-rank');

    ES6

    import { Redis } from 'ioredis';
    import { Leaderboard, PeriodicLeaderboard, LeaderboardMatrix } from 'redis-rank';

    You will have to provide a ioredis connection. See here for more information.

    const client = new Redis({
        host: "127.0.0.1",
        port: 6379
    });

    You are ready, now read one of the examples linked below!

    Examples

    API

    Running tests

    A Redis server in localhost without password is expected.

    ⚠️ Note: The database #15 will be flushed ⚠️

    $ npm test

    I tried with ioredis-mock but I experienced some issues with Lua scripts so we have to rely on a real Redis server (which I think is better anyway).

    License

    MIT. See LICENSE.

    Install

    npm i redis-rank

    DownloadsWeekly Downloads

    124

    Version

    2.1.1

    License

    MIT

    Unpacked Size

    95.3 kB

    Total Files

    15

    Last publish

    Collaborators

    • mlomb