@opuscapita/cache

1.3.0 • Public • Published

@opuscapita/cache

Cache library for OpusCapita. By default it ships with three cache providers: dummy, memory and redis.

To have a look at the full API, please visit the related wiki page.

Minimum setup

First got to your local code directory and run:

npm install @opuscapita/cache

If you are using the redis back-end, you'll need to have access to a running Consul server to get your endpoint configuration and a Redis server to connect to.

If all this is set up, go to you code and add the following command:

const Cache = require('@opuscapita/cache');

var cache = new Cache(); // using default: Memory driver

cache.put('hello', 'world').then(() => cache.get('hello')).then(console.log);

Default configuration

The default configuration object provides hints about what the module's standard behavior is like. In order to set plug-in (driver) specific configurations, you may add a sub-key to the configuration having the same name as the driver property you set and assign a configuration object there.

{
    driver : 'memory',
    keyPrefix: '',
    defaultExpire: 600, // in seconds
    pluginDirectory: 'plugins'
}

Example including memory driver configuration:

const Cache = require('@opuscapita/cache');

var cache = new Cache({
    driver : 'memory',
    keyPrefix: '',
    checkPeriod: 10,
    memory: {
      checkPeriod: 600,
      useClones: true
    },
    redis: {
      consul: {
        host: 'consul'
      },
      redis: {
        endpointName: 'redis',
        passwordKey: 'redis/password'  // consul KV key name
      }
    }
});

Changes in version 1.2.0

If environment variable KUBERNETES_SERVICE_DISCOVERY is set then config library is not used at all for service discovery. Redis port is read from REDIS_PORT environment variable (6379 is used by default if variable not set).

There is a feature? which cause redis/redis/ path in the configuration... In the future version this shall change

{
  driver: "redis",
  redis: {
    consul: {
      host: "consul"
      serviceSecretPath: '/path'
      port:8500,
      retryCount: 50,
      retryTimeout: 1000,
      logger: null,
    },
    redis: {
      endpointName: "redis",
      passwordKey: "redis/password",
    },
  },
}

Added new option to change redis retry interval and count.

Dependencies (5)

Dev Dependencies (9)

Package Sidebar

Install

npm i @opuscapita/cache

Weekly Downloads

281

Version

1.3.0

License

MIT

Unpacked Size

16.7 kB

Total Files

7

Last publish

Collaborators

  • dsbbl
  • ariusz
  • ilhamkadduri
  • smachnow
  • piotr.krzysztof.murdzia
  • kuos
  • elaczapiewska
  • ocmachineuser
  • ocautomation