
Security News
Socket Releases Free Certified Patches for Critical vm2 Sandbox Escape
A critical vm2 sandbox escape can allow untrusted JavaScript to break isolation and execute commands on the host Node.js process.
cache-manager-store-redis
Advanced tools
The Redis store for the node-cache-manager module.
redis-pool which is not necessary. See https://github.com/NodeRedis/node_redis/issues/226mget command to merge redis requests.npm install cache-manager-store-redis --save
Here are examples that demonstrate how to implement the Redis cache store.
var cacheManager = require('cache-manager');
var redisStore = require('cache-manager-store-redis');
var redisCache = cacheManager.caching({
store: redisStore,
host: 'localhost', // default value
port: 6379, // default value
auth_pass: 'XXXXX',
db: 0,
ttl: 600
});
var ttl = 5;
// listen for redis connection error event
redisCache.store.events.on('redisError', function(error) {
// handle error here
console.log(error);
});
// Pass in an existing node_redis compatible client
var redisCache = cacheManager.caching({
store: redisStore,
createClient: function () {
return redis.createClient(...)
}
});
redisCache.set('foo', 'bar', ttl, function(err) {
if (err) {
throw err;
}
redisCache.get('foo', function(err, result) {
console.log(result);
// >> 'bar'
redisCache.del('foo', function(err) {});
});
});
function getUser(id, cb) {
setTimeout(function () {
console.log("Returning user from slow database.");
cb(null, {id: id, name: 'Bob'});
}, 100);
}
var userId = 123;
var key = 'user_' + userId;
// Note: ttl is optional in wrap()
redisCache.wrap(key, function (cb) {
getUser(userId, cb);
}, ttl, function (err, user) {
console.log(user);
// Second time fetches user from redisCache
redisCache.wrap(key, function (cb) {
getUser(userId, cb);
}, function (err, user) {
console.log(user);
});
});
var cacheManager = require('cache-manager');
var redisStore = require('cache-manager-store-redis');
var redisCache = cacheManager.caching({store: redisStore, db: 0, ttl: 600});
var memoryCache = cacheManager.caching({store: 'memory', max: 100, ttl: 60});
var multiCache = cacheManager.multiCaching([memoryCache, redisCache]);
userId2 = 456;
key2 = 'user_' + userId;
ttl = 5;
// Sets in all caches.
multiCache.set('foo2', 'bar2', ttl, function(err) {
if (err) { throw err; }
// Fetches from highest priority cache that has the key.
multiCache.get('foo2', function(err, result) {
console.log(result);
// >> 'bar2'
// Delete from all caches
multiCache.del('foo2');
});
});
// Note: ttl is optional in wrap()
multiCache.wrap(key2, function (cb) {
getUser(userId2, cb);
}, ttl, function (err, user) {
console.log(user);
// Second time fetches user from memoryCache, since it's highest priority.
// If the data expires in the memory cache, the next fetch would pull it from
// the 'someOtherCache', and set the data in memory again.
multiCache.wrap(key2, function (cb) {
getUser(userId2, cb);
}, function (err, user) {
console.log(user);
});
});
npm test or npm run coverageIf 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.
node-cache-manager-store-redis is licensed under the MIT license.
FAQs
Redis store for the node-cache-manager
The npm package cache-manager-store-redis receives a total of 5 weekly downloads. As such, cache-manager-store-redis popularity was classified as not popular.
We found that cache-manager-store-redis demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A critical vm2 sandbox escape can allow untrusted JavaScript to break isolation and execute commands on the host Node.js process.

Research
Five malicious NuGet packages impersonate Chinese .NET libraries to deploy a stealer targeting browser credentials, crypto wallets, SSH keys, and local files.

Security News
pnpm 11 turns on a 1-day Minimum Release Age and blocks exotic subdeps by default, adding safeguards against fast-moving supply chain attacks.