Configure Redis Publisher and Subscriber
Create src/config/redis.js.
We need two Redis connections because the adapter uses Pub/Sub.
The publisher client sends messages, while the subscriber client listens for messages.
The subscriber is created by duplicating the publisher client configuration.
src/config/redis.js
import { createClient } from 'redis';
const redisUrl = process.env.REDIS_URL || 'redis://localhost:6379';
export const pubClient = createClient({
url: redisUrl
});
export const subClient = pubClient.duplicate();
pubClient.on('error', (error) => {
console.error('Redis publisher error:', error);
});
subClient.on('error', (error) => {
console.error('Redis subscriber error:', error);
});
export async function connectRedis() {
await Promise.all([
pubClient.connect(),
subClient.connect()
]);
console.log('Redis publisher and subscriber connected');
}Creates separate publisher and subscriber clients, registers error listeners, and exposes a connection function.
Key Takeaways
The Redis adapter requires publisher and subscriber connections.
The subscriber can be created using duplicate().
Wait for Redis connections before starting the application.