Как использовать операции BLPOP, BRPOP в нескольких очередях с помощью node_redis - PullRequest
3 голосов
/ 20 января 2020

Я использую клиент node_redis (https://www.npmjs.com/package/redis) для подключения к Redis из моего приложения NodeJS. Следуя моему коду для операции BLPOP.

client.brpop("key1", 5, function(err, data) {
  // deal with err, data
});

Но мой вариант использования требует прослушивания нескольких клавиш, таких как key1, key2, some_other_key_1 и c. Как я могу это сделать, используя node_redis?

1 Ответ

1 голос
/ 21 января 2020

Команда BRPOP поддерживает несколько клавиш одновременно. Если все списки окажутся пустыми, он вернет первый элемент, добавленный к любому из ключей, если это произойдет до истечения времени ожидания.

Чтобы сделать это на node-redis , передайте все ключи и время ожидания в массиве:

client.brpop(["key1", "key2", "some_other_key_1", 5], function(err, data) {
    // deal with err, data
    console.log(data.length + " replies:");
    data.forEach(function (reply, i) {
        console.log("    " + i + ": " + reply);
    });
    client.quit();
});
...