Based on the query string, it will store/retrieve JSON responses from Redis. This is a Work In Progress, not ready for production (headers are not cached as of now).
var cache = require('restify-cache');
cache.config({
redisPort: 6379, //default: '6379'
redisHost: 'localhost', //default: 'localhost'
redisOptions: {}, //optional
ttl: 60 * 60 //default: 60 * 60; in seconds
});
The first middleware after auth (if there is any) should be the cache's before.
server.use(cache.before);
You have to subscribe for the server's after event as well.
WARNING! In your route handlers, you always have to call next()
!
server.on('after', cache.after);
Use of Restify's res.cache() method will control the EXPIRE time in Redis. The absence of a response cache will use the cache.config.ttl value identified above.
Indicates that the response should be cached for 600 seconds.
res.cache('public', 600);
A maxAge value of 0 will engage Redis, but set the expire seconds to 0 (essentially expiring immediately).
res.cache('public', 0);
A header is added to each response:
- X-Cache: HIT - the response was served from cache
- X-Cache: MISS - the response generation fell through to the endpoint