27 lines
731 B
JavaScript
27 lines
731 B
JavaScript
|
import fp from 'fastify-plugin';
|
||
|
import Redis from 'ioredis';
|
||
|
|
||
|
// Fastify plugin for ioredis
|
||
|
async function redisPlugin(fastify) {
|
||
|
const redis = new Redis({
|
||
|
host: process.env.REDIS_HOST,
|
||
|
port: process.env.REDIS_PORT,
|
||
|
});
|
||
|
console.log(`Attempting to connect to redis@${process.env.REDIS_HOST}:${process.env.REDIS_PORT} ...`)
|
||
|
redis.on('connect', () => {
|
||
|
console.log(`Connection success to Redis at: ${new Date().toISOString()}`);
|
||
|
});
|
||
|
// Attach redis client to Fastify instance
|
||
|
fastify.decorate('redis', redis);
|
||
|
|
||
|
// Close redis connection on server shutdown
|
||
|
fastify.addHook('onClose', (app, done) => {
|
||
|
app.redis.quit();
|
||
|
done();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// Export as a fastify plugin
|
||
|
export default fp(redisPlugin);
|
||
|
|