我可以使用以下方法在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中设置值?
答案 0 :(得分:0)
使用您的redis库进行猜测。应该工作一样。
但是此功能不一样
它是做什么的?
答案 1 :(得分:0)
原来,在完全执行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.');
});
});
但是更好的解决方案是使用Promises。