Class: Cacher

arpen/services/cacher~ Cacher

Cacher

Will temporarily cache object in Redis if cache is enabled or instantly return undefined if it isn't

redis module is required

Add to your config:
// Redis servers
redis: {
  cache: {
    host: 'localhost',
    port: 6379,
    database: 0,
    //password: 'password',
  },
},
cache: {
  enable: true,
    subscribe: [
      { postgres: 'main' },           // Invalidate cache pubsub provider
    ],
  redis: 'cache',                     // Name of Redis configuration to use
  expire_min: 3 * 60,                 // seconds, minimum time to cache values for (random)
  expire_max: 5 * 60,                 // seconds, maximum time to cache values for (random)
},

new Cacher(app, config, redis, logger, util)

Create the service
Parameters:
Name Type Description
app App The application
config object Configuration
redis Redis Redis service
logger Logger Logger service
util Util Util service

Members


<static> provides :string

Service name is 'cacher'
Type:
  • string

<static> requires :Array.<string>

Dependencies as constructor arguments
Type:
  • Array.<string>

<static> lifecycle

This service is a singleton

Methods


<async> set(name, value [, ttl])

Set variable to a new value
Parameters:
Name Type Argument Description
name string The name
value * The value
ttl number <optional>
Time before expiration is seconds, use 0 to store forever. If undefined then default (random) value will be used
Returns:
Resolves on success
Type
Promise

<async> get(name)

Get variable value refreshing its lifetime
Parameters:
Name Type Description
name string The name
Returns:
Resolves to variable value or undefined
Type
Promise

<async> unset(name)

Remove variable
Parameters:
Name Type Description
name string The name
Returns:
Resolves on success
Type
Promise

<async> onInvalidateMessage(message)

PUBSUB message handler
Parameters:
Name Type Description
message * Body of the message
Returns:
Type
Promise

_getKey(name)

Convert variable name to Redis key
Parameters:
Name Type Description
name string Cache variable name
Returns:
Returns corresponding Redis key
Type
string