Node Cache Manager store for Redis
The Redis store for the node-cache-manager module.
Installation
npm install cache-manager-redis --save
Usage examples
Here are examples that demonstrate how to implement the Redis cache store.
Single store
var cacheManager = ;var redisStore = ; var redisCache = cacheManager; var ttl = 5; // listen for redis connection error eventredisCachestoreevents; redisCache; { ;} var userId = 123;var key = 'user_' + userId; // Note: ttl is optional in wrap()redisCache; // The del() method accepts a single key or array of keys,// with or without a callback.redisCache; // The keys() method uses the Redis SCAN command and accepts// optional `pattern` and `options` arguments. The `pattern`// must be a Redis glob-style string and defaults to '*'. The// options argument must be an object and accepts a single// `scanCount` property, which determines the number of elements// returned internally per call to SCAN. The default `scanCount`// is 100.redisCache;
Multi-store
var cacheManager = ;var redisStore = ; var redisCache = cacheManager;var memoryCache = cacheManager; var multiCache = cacheManager; userId2 = 456;key2 = 'user_' + userId;ttl = 5; // Sets in all caches.multiCache; // Note: ttl is optional in wrap()multiCache;
Using a URL instead of options (if url is correct it overrides options host, port, db, auth_pass and ttl)
Urls should be in this format redis://[:password@]host[:port][/db-number][?ttl=value]
var cacheManager = ;var redisStore = ; var redisCache = cacheManager; // proceed with redisCache
Seamless compression (currently only supports Node's built-in zlib / gzip implementation)
// Compression can be configured for the entire cache.var redisCache = cacheManager; // Or on a per command basis. (only applies to get / set / wrap)redisCache; // Setting the compress option to true will enable a default configuration // for best speed using gzip. For advanced use, a configuration object may // also be passed with implementation-specific parameters. Currently, only // the built-in zlib/gzip implementation is supported.var zlib = ;var redisCache = cacheManager;
Currently, all implementation-specific configuration parameters are passed directly to the zlib.gzip
and zlib.gunzip
methods. Please see the Node Zlib documentation for available options.
Tests
- Run a Redis server
- Run tests
npm test
ornpm run coverage
Contribution
If you would like to contribute to the project, please fork it and send us a pull request. Please add tests for any new features or bug fixes. Also make sure the code coverage is not impacted.
License
node-cache-manager-redis
is licensed under the MIT license.