From 632d189c7cf2e66f419023b8175aec19faeb5a03 Mon Sep 17 00:00:00 2001 From: Bryan Donovan Date: Sun, 15 Jun 2014 10:39:15 -0700 Subject: [PATCH] updating examples/redis_example/example.js with cache.keys() usage --- examples/redis_example/example.js | 50 +++++++++++++++++++-------- examples/redis_example/redis_store.js | 20 +++++++++-- 2 files changed, 53 insertions(+), 17 deletions(-) diff --git a/examples/redis_example/example.js b/examples/redis_example/example.js index f6c3905..b010168 100644 --- a/examples/redis_example/example.js +++ b/examples/redis_example/example.js @@ -3,45 +3,67 @@ // npm install sol-redis-pool // node examples/redis_example/example.js +var util = require('util'); var cache_manager = require('../../'); var redis_store = require('./redis_store'); var redis_cache = cache_manager.caching({store: redis_store, db: 0, ttl: 100/*seconds*/}); +console.log("set/get/del example:"); redis_cache.set('foo', 'bar', function (err) { if (err) { throw err; } redis_cache.get('foo', function (err, result) { - console.log(result); + if (err) { throw err; } + console.log("result fetched from cache: " + result); // >> 'bar' - redis_cache.del('foo', function (err) { console.log(err); }); + 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("Returning user from slow database."); + console.log("\n\nReturning user from slow database."); cb(null, {id: id, name: 'Bob'}); }, 100); } -var user_id = 123; -var key = 'user_' + user_id; +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); + }, cb); +} -redis_cache.wrap(key, function (cb) { - get_user(user_id, cb); -}, function (err, user) { +get_user_from_cache(user_id, function (err, user) { console.log(user); - // Second time fetches user from redis_cache - redis_cache.wrap(key, function (cb) { - get_user(user_id, cb); - }, function (err, 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); - process.exit(); + + 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: -// Returning user from slow database. // { id: 123, name: 'Bob' } +// user from second cache request: // { id: 123, name: 'Bob' } +// keys: [ 'user_123' ] diff --git a/examples/redis_example/redis_store.js b/examples/redis_example/redis_store.js index ef39dfb..97a64fe 100644 --- a/examples/redis_example/redis_store.js +++ b/examples/redis_example/redis_store.js @@ -75,13 +75,27 @@ function redis_store(args) { }); }; + self.keys = function (pattern, cb) { + if (typeof pattern === 'function') { + cb = pattern; + pattern = '*'; + } + + connect(function (err, conn) { + if (err) { return cb(err); } + + conn.keys(pattern, function (err, result) { + pool.release(conn); + cb(err, result); + }); + }); + }; + return self; } -var methods = { +module.exports = { create: function (args) { return redis_store(args); } }; - -module.exports = methods;