Jeeng-configs-cache
This is a helper package for Jeeng application LTD. It's main purpose is to support serverless architecture solutions. Mainly a quick way to efficiently store state and/or config values across serverless function invokations. It uses a Redis database and a postgres database for failover.
It searches the requested value in the following manner:
- Search the Redis database for the value (Search for key:
<keyPrefix>-valueName
) - If found:
- Respond with found value
- else:
- Search postgres database (Search table
valuesTable
). - If not found:
- Respond with
null
- Respond with
- Else:
- Store value in redis (in key:
<keyPrefix>-valueName
) with TTL ofttl
seconds. - Response with found value
- Store value in redis (in key:
- Search postgres database (Search table
Install
npm install --save jeeng-configs-cache
Usage
-
Import package:
const ConfigsCache = require('jeeng-configs-cache')
-
Instanciate a
ConfigCache
object:const configCache = new ConfigCache(<POSTGRES_CONNECTION_STRING>, <REDIS_CONNECTION_OBJECT>, options)
Where:
-
POSTGRES_CONNECTION_STRING - is a postgres connection string of the format:
postgres://<user>:<password>@<host>:<port>/<database>
-
REDIS_CONNECTION_OBJECT is an object with connection params as specified in the package
promise-redis
- Start retrieving values efficiently:
const someValue = configCache.get('someValue')
Options
option | default value | description |
---|---|---|
keyPrefix | jeengConfigCache | The prefix for stored keys in Redis database. |
valuesTable | configs | Table name where values are stored in postgres database. Table is of the following structure: ` |
ttl | 3600 | The TTL of stored values in the Redis database |