Browse Source

fixing redis example

feature/specify-what-to-cache
Bryan Donovan 10 years ago
parent
commit
5f08d23786
  1. 33
      examples/redis_example/example.js
  2. 21
      examples/redis_example/redis_store.js

33
examples/redis_example/example.js

@ -10,7 +10,8 @@ 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) {
redis_cache.set('foo', 'bar', {ttl: ttl}, function(err) {
if (err) { throw err; }
redis_cache.get('foo', function(err, result) {
@ -23,6 +24,34 @@ redis_cache.set('foo', 'bar', ttl, function(err) {
});
});
// TTL defaults to what we passed into the caching function (100)
redis_cache.set('foo-no-ttl', 'bar-no-ttl', function(err) {
if (err) { throw err; }
redis_cache.get('foo-no-ttl', function(err, result) {
if (err) { throw err; }
console.log("result fetched from cache: " + result);
// >> 'bar'
redis_cache.del('foo-no-ttl', function(err) {
if (err) { throw err; }
});
});
});
// Calls Redis 'set' instead of 'setex'
redis_cache.set('foo-zero-ttl', 'bar-zero-ttl', {ttl: 0}, function(err) {
if (err) { throw err; }
redis_cache.get('foo-zero-ttl', function(err, result) {
if (err) { throw err; }
console.log("result fetched from cache: " + result);
// >> 'bar'
redis_cache.del('foo-zero-ttl', function(err) {
if (err) { throw err; }
});
});
});
var user_id = 123;
function create_key(id) {
@ -40,7 +69,7 @@ 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);
}, {ttl: ttl}, cb);
}
get_user_from_cache(user_id, function(err, user) {

21
examples/redis_example/redis_store.js

@ -34,7 +34,11 @@ function redis_store(args) {
});
}
self.get = function(key, cb) {
self.get = function(key, options, cb) {
if (typeof options === 'function') {
cb = options;
}
connect(function(err, conn) {
if (err) { return cb(err); }
@ -46,13 +50,20 @@ function redis_store(args) {
});
};
self.set = function(key, value, ttl, cb) {
var ttlToUse = ttl || ttlDefault;
self.set = function(key, value, options, cb) {
if (typeof options === 'function') {
cb = options;
options = {};
}
options = options || {};
var ttl = (options.ttl || options.ttl === 0) ? options.ttl : ttlDefault;
connect(function(err, conn) {
if (err) { return cb(err); }
if (ttlToUse) {
conn.setex(key, ttlToUse, JSON.stringify(value), function(err, result) {
if (ttl) {
conn.setex(key, ttl, JSON.stringify(value), function(err, result) {
pool.release(conn);
cb(err, result);
});

Loading…
Cancel
Save