gpt4 book ai didi

node.js - 使用 Node.js 在 Redis 中搜索然后添加记录

转载 作者:可可西里 更新时间:2023-11-01 11:39:11 25 4
gpt4 key购买 nike

我可能太累了,但对于我的一生,我无法理解为什么以下内容不起作用。我正在尝试搜索一个字符串是否存在,如果不存在,则将其添加到 redis 数据库中

options = options || {};
var counter = 1,
client = redis.getClient();
options.name = options.name || '';
if (_.isEmpty(options.name)) {
return callback('Cannot add name. No name supplied');
} else {
options.name = options.name.trim();
}
client.get('mySavedKeys' + options.name, function (err, data) {
if (err) {return callback(err); }
if (!_.isNull(data)) {
console.log('Name found', options.name);
return callback(null, data);
} else {
counter += 1;
console.log('Name not found', options.name);
console.log('ID', counter)
client2.set('mySavedKeys' + options.name, counter, function (err) {
if (err) {return callback(err); }
console.log('Added', options.name);
return callback(null, counter);
});
}
});

如果我使用 async.each 运行要添加的名称数组,那么它似乎会运行所有“get”函数,然后运行“set”函数,所以我得到了重复的插入。我确定答案很明显,但我看不到问题所在。

最佳答案

如果您使用 async.eachSeries,您将确保获取/设置以原子方式发生,而不是所有获取并行运行。

关于node.js - 使用 Node.js 在 Redis 中搜索然后添加记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26859602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com