Pub/Sub — publish-subscribe messaging pattern.
1const redis = require("redis");23// Publisher4const publisher = redis.createClient();56async function publish(channel, message) {7 await publisher.publish(channel, JSON.stringify(message));8}910// Subscriber11const subscriber = redis.createClient();1213await subscriber.subscribe("notifications", (message) => {14 const data = JSON.parse(message);15 console.log("Received:", data);16});1718// Usage19await publish("notifications", {20 type: "order:created",21 orderId: 123,22});
Redis Streams (better for persistence):
1// Producer2await redis.xAdd("orders", "*", {3 type: "created",4 orderId: "123",5});67// Consumer (consumer group)8await redis.xGroupCreate("orders", "mygroup", "0");9const messages = await redis.xReadGroup(10 "mygroup", "consumer-1",11 [{ key: "orders", id: ">" }],12 { COUNT: 10, BLOCK: 0 }13);
Key differences: