redis source for pub-server and pub-generator - also provides cache for other sources
npm install pub-src-redisredis source for pub-server and pub-generator - also provides cache for other source
* uses a redis hash to map file.path to file.text
* supports non-FILE type (opaque) sources with simple key->data get and set
* provides get() and put() for bulk reads and writes
* also provides cache() to proxy-cache another source.
This is useful for avoiding startup delays on slow/remote sources like github.
NOTE: This library uses node-redis v3.x because of difficulties upgrading this codebase to v4.x.
``javascript
var src = require('pub-src-redis');
// instantiate source
// options become properties of source
var source = src( { name:'redis-source' } );
// use redis as a cache
source.cache(otherSource, { writeThru:false });
`
$3
- auth configuration has to come from process.env.RCA
- redis host and port can be configured the same way, or via source.host and source.port`sh
export RCA={auth-pass}
export RCH={host}
export RCP={port}
`$3
- get() uses hgetall to fetch the entire hash in one async operation - no filtering is provided
- the result is an array of file objects each with a path: and a text: property
- the array is sorted alphabetically by path, as if the files came from a directory tree$3
- put() does nothing unless writable is set on the source
- it uses hmset to write an array of file objects, overwriting any existing files with the same path
- there is no partial file write but the array may contain a subset of the files read via get()$3
- interposes
src.get() and src.put(), for a different source (src) like github.-
src.get() will read from src on the first call, and subsequently read only from redis,
unless the option get({fromSource:true}, cb) is used-
src.put() will write directly to redis.
cacheOpts.writeThru means that put() will also write to src before returning-
src.commit() writes a single file from cache back to source - only available if !cacheOpts.writeThru.-
src.revert() reverts a single file from source - only available if !cacheOpts.writeThru.$3
- redis-specific api - used mainly for testing
- deletes the key used by this src and everything in it - use with care$3
- redis-specific api - e.g. used by pub -O`