关于node.js:如何在Redis中仅提供一个实例来处理事件?

How to provide handle an event just one instance in Redis?

我用3台机器处理来自Redis的事件。但是我不希望x机器处理任何事件,其他机器也不会处理。

我正在研究nodejs。我使用订阅方法进行处理。

1
Redis.psubscribe('__keyevent@0__:incrby...

我看到了如何确保我的事件仅由我的一个应用程序实例处理?和Redis Pub / Sub上的"竞争消费者"是否受支持?,但它们确实很老。可能有更好的方法。


Redis pubsub不适用于这种用例。您可以通过使用Redis Streams来实现。几天前,它作为Redis 5.0的一部分发布。
您可以将3个使用者(每个实例/机器1个使用者)作为从Redis流读取的同一使用者组的一部分。 Redis将确保3个使用者从同一流中获得不同的消息。