pub-src-redis
v2.4.0
Published
redis source for pub-server and pub-generator - also provides cache for other sources
Downloads
76
Readme
pub-src-redis
redis 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()
andput()
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.
src(options)
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 });
configuring redis keyname
- the redis keyname is derived from
source.name || source.path
redis auth
- auth configuration has to come from
process.env.RCA
- redis host and port can be configured the same way, or via
source.host
andsource.port
export RCA={auth-pass}
export RCH={host}
export RCP={port}
source.get(cb)
get()
useshgetall
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 atext:
property - the array is sorted alphabetically by path, as if the files came from a directory tree
source.put(files, cb)
put()
does nothing unlesswritable
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()
source.cache(src, [cacheOpts])
interposes
src.get()
andsrc.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 optionget({fromSource:true}, cb)
is usedsrc.put()
will write directly to redis.cacheOpts.writeThru
means thatput()
will also write to src before returningsrc.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
.
source.clear(cb)
- redis-specific api - used mainly for testing
- deletes the key used by this src and everything in it - use with care
source.unref()
- redis-specific api - e.g. used by
pub -O
- allows the server to exit after creating an instance of src-redis
- for more information, see node_redis