如何设置一个新键Redis回调

xytpbqjk  于 2022-11-21  发布在  Redis
关注(0)|答案(3)|浏览(148)

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

13z8s7eq

13z8s7eq1#

原来 , 在 client . keys ( ) 函数 的 回调 完全 执行 之前 , 就 调用 了 client . quit ( ) 。
将 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.');
  });
});

中 的 每 一 个
但 更 好 的 解决 办法 是 使用 承诺 。

vnjpjtjt

vnjpjtjt2#

猜猜你的redis图书馆有什么问题。应该也一样。
但此函数的作用不同
它是做什么的?

yzckvree

yzckvree3#

如果您正在使用4.1.0或更高版本的redis-node,您可以尝试:

// params: KEY, VALUE, OPTIONS
client.set("TMP", 100, { EX: 100 });

相关问题