Как установить новый ключ Redis callback - PullRequest
0 голосов
/ 22 января 2019

Я могу установить ключ в Redis с помощью:

client.set("tmpkey", 100, "EX", 100);

Но эта функция не устанавливает ключ при вызове внутри функции обратного вызова другой функции Redis (KEYS или SCAN):

var client = redis.createClient(process.env.REDIS_PORT, process.env.REDIS_HOST);          

client.on('error', function (err) {
    console.log(err);
});

client.keys("TAG:*", function(err, res) {
    console.log(res);
    client.set("TMP", 100, "EX", 100);
});

client.quit(function (err, res) {
  console.log('Exiting from quit command.');
});

Как установить значение в Redis после сканирования существующих ключей?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Оказалось, что client.quit () был вызван до того, как был полностью выполнен обратный вызов функции client.keys ().

Перемещение client.quit () в обратный вызов client.keys ()решил проблему для меня.

client.keys("TAG:*", function(err, res) {
  console.log(res);
  client.set("TMP", 100, "EX", 100);

  client.quit(function (err, res) {
    console.log('Exiting from quit command.');
  });
});

Но лучшим решением было бы использование обещаний.

0 голосов
/ 22 января 2019

Угадайте что-нибудь с вашей библиотекой redis.Должно работать так же.

Но эта функция не делает то же самое

Что она делает?

...