jeeng-configs-cache v1.0.4
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:
1. Search the Redis database for the value (Search for key: <keyPrefix>-valueName
)
2. If found:
1. Respond with found value
3. else:
1. Search postgres database (Search table valuesTable
).
2. If not found:
1. Respond with null
3. Else:
1. Store value in redis (in key: <keyPrefix>-valueName
) with TTL of ttl
seconds.
2. Response with found value
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:|id::serial | name::varchar | value::varchar | optional more columns| |
ttl | 3600 | The TTL of stored values in the Redis database |