|
|
|
// Setup:
|
|
|
|
// npm install redis@0.6.7 sol-redis-pool@0.1.0
|
|
|
|
// node examples/redis_example/example.js
|
|
|
|
|
|
|
|
var util = require('util');
|
|
|
|
var cache_manager = require('../../');
|
|
|
|
var redis_store = require('./redis_store');
|
|
|
|
// Note: ttl is in seconds
|
|
|
|
var redis_cache = cache_manager.caching({store: redis_store, db: 0, ttl: 100});
|
|
|
|
var ttl = 60;
|
|
|
|
|
|
|
|
console.log("set/get/del example:");
|
|
|
|
redis_cache.set('foo', 'bar', ttl, function(err) {
|
|
|
|
if (err) { throw err; }
|
|
|
|
|
|
|
|
redis_cache.get('foo', function(err, result) {
|
|
|
|
if (err) { throw err; }
|
|
|
|
console.log("result fetched from cache: " + result);
|
|
|
|
// >> 'bar'
|
|
|
|
redis_cache.del('foo', function(err) {
|
|
|
|
if (err) { throw err; }
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
var user_id = 123;
|
|
|
|
|
|
|
|
function create_key(id) {
|
|
|
|
return 'user_' + id;
|
|
|
|
}
|
|
|
|
|
|
|
|
function get_user(id, cb) {
|
|
|
|
setTimeout(function() {
|
|
|
|
console.log("\n\nReturning user from slow database.");
|
|
|
|
cb(null, {id: id, name: 'Bob'});
|
|
|
|
}, 100);
|
|
|
|
}
|
|
|
|
|
|
|
|
function get_user_from_cache(id, cb) {
|
|
|
|
var key = create_key(id);
|
|
|
|
redis_cache.wrap(key, function(cache_cb) {
|
|
|
|
get_user(user_id, cache_cb);
|
|
|
|
}, ttl, cb);
|
|
|
|
}
|
|
|
|
|
|
|
|
get_user_from_cache(user_id, function(err, user) {
|
|
|
|
console.log(user);
|
|
|
|
|
|
|
|
// Second time fetches user from redis_cache
|
|
|
|
get_user_from_cache(user_id, function(err, user) {
|
|
|
|
console.log("user from second cache request:");
|
|
|
|
console.log(user);
|
|
|
|
|
|
|
|
redis_cache.keys(function(err, keys) {
|
|
|
|
console.log("keys: " + util.inspect(keys));
|
|
|
|
|
|
|
|
var key = create_key(user_id);
|
|
|
|
redis_cache.del(key, function(err) {
|
|
|
|
if (err) { throw err; }
|
|
|
|
process.exit();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
// Outputs:
|
|
|
|
// { id: 123, name: 'Bob' }
|
|
|
|
// user from second cache request:
|
|
|
|
// { id: 123, name: 'Bob' }
|
|
|
|
// keys: [ 'user_123' ]
|