gpt4 book ai didi

node.js - Node redis - id 生成竞争条件

转载 作者:可可西里 更新时间:2023-11-01 10:53:58 27 4
gpt4 key购买 nike

多个进程可以访问我的 redis 存储。添加新的用户哈希时,我执行以下步骤:

  1. 增加用户名
  2. 设置用户:[递增的 userId] ...

如何将这些步骤捆绑到交易中?

const client = require('redis').createClient();

client.on("connect", () => {
const multi = client.multi();
multi.incr("userId", (userId) => {
console.log("new userId is %s", userId); // TODO userId should not be null
multi.set("user:"+userId, {name:"UserName"} );
});
multi.exec(); // TODO after the execution I expect to see the key user:null using redis-cli, but it does not exist
});

最佳答案

您不能在同一事务内对事务使用操作的回复,但在您的情况下也不需要这样做 - INCR 操作是原子的并保证返回无竞争的独特值(value)。

关于node.js - Node redis - id 生成竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48005124/

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