gpt4 book ai didi

node.js - Redis.io 多个 multi() - 它们可以是原子的吗?

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

我的第二个 multi() 调用需要第一个 multi() 的结果。但是我希望 multi() 的所有命令都以原子方式执行。我该怎么做?

这是使用 node.js 客户端。

db.multi()
.incr('next:user:id')
.sadd('users:facebookid', facebookId)
.exec(function(err, replies)
{
var newUserId = replies[0];
// if something fails in this multi(), then the previous multi() shouldn't be executed either.
db.multi()
.hmset('user:' + newUserId , 'facebookId', facebookId, 'name', userName)
.incr('users:count')
.exec()

});

最佳答案

你应该可以使用redis EVAL在原子事务中做复杂的工作。我的理解是 EVAL 命令被写入 tx 日志,因此即使 redis 崩溃,整个命令也将运行完成或根本不执行。

关于node.js - Redis.io 多个 multi() - 它们可以是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13186239/

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