如何设置一个新的key Redis回调

How to set a new key Redis callback

我可以在 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 中设置值?

猜猜你的redis库。应该是一样的。

But this function does not do the same

它有什么作用?

原来是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.');
  });
});

但更好的解决方案是使用 Promises。