如何仅在Redis中提供一个实例来处理事件?

时间:2018-10-26 16:29:41

标签: node.js redis

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

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

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

我看到了How to make sure my event is handled by only one instance of my app?Competing Consumer on Redis Pub/Sub supported?,但是它们确实很老。可能有更好的方法。

1 个答案:

答案 0 :(得分:2)

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