@gasbuddy/configured-redis-client

    2.0.0 • Public • Published

    configured-redis-client

    A small wrapper around redis to allow configuration from confit.

    {
      "connections": {
        "redis": {
          "module": "require:@gasbuddy/configured-redis-client",
          "hosts":
        }
      }
    }

    API

    The redis client attached to req.gb.db is an ioredis Redis object.

    Additional Utilities

    Ttl

    Common redis ttl values can be found in Ttl.

    req.gb.db.redis.Ttl.oneMinute // => 60
    req.gb.db.redis.Ttl.oneHour // => 3600

    Redis Keys

    To make a key, use makeKey()

    req.gb.db.redis.makeKey('redis', 'is', 'cool') // => 'redis:is:cool'

    To create a key that begins with the name of your service, use makeServiceKey()

    req.gb.db.redis.makeServiceKey('redis', 'is', 'cool') // => 'my-serv:redis:is:cool'

    Caching the Result of a Function Call

    Use memoize() to cache the result of a function call.

    const redisClient = req.gb.db.redis;
     
    const mySlowDataFunction = async () => {
      // slow things here
    };
     
    // return cached value. on cache miss, cache and return result of mySlowdataFunction()
    const myVal = redisClient.memoize(
      mySlowDataFunction,
      {
        key: redisClient.makeKey('redis', 'is', 'cool'), // defaults to name of function
        ttlSeconds: redisClient.Ttl.fiveMinutes, // defaults to one minute
      },
    );

    Install

    npm i @gasbuddy/configured-redis-client

    DownloadsWeekly Downloads

    75

    Version

    2.0.0

    License

    UNLICENSED

    Unpacked Size

    9.79 kB

    Total Files

    11

    Last publish

    Collaborators

    • djmax