gpt4 book ai didi

node.js - Redis 'multi' 使用动机

转载 作者:IT王子 更新时间:2023-10-29 06:04:40 25 4
gpt4 key购买 nike

从文档中可以清楚地看出,我应该在循环中或在经常调用的事件或函数中使用 multi 进行 redis 查询。

示例表单文档:

 var redis  = require("redis"),
client = redis.createClient(), multi;

// start a separate multi command queue
multi = client.multi();
multi.incr("incr thing", redis.print);
multi.incr("incr other thing", redis.print);

// runs immediately
client.mset("incr thing", 100, "incr other thing", 1, redis.print);

// drains multi queue and runs atomically
multi.exec(function (err, replies) {
console.log(replies); // 101, 2
});

// you can re-run the same transaction if you like
multi.exec(function (err, replies) {
console.log(replies); // 102, 3
client.quit();
});

1) 我为什么要这样做?

2) 如果我只为用户请求调用一次函数(例如在网络应用程序中),为什么我不应该使用 multi?

最佳答案

你应该使用 multi 因为:

  • 它打开一个 redis 事务:所有查询将一个接一个地处理,而不会在之间执行从另一个 redis 客户端发送的其他查询(多是原子的)
  • 获得的数据没有处于错误状态,没有多个其他人可能在循环执行期间修改了 redis 上的值:您可能会得到在现实中没有意义的奇怪数据!
  • 所有命令都运行或不运行:如果在循环执行期间断开连接,则可能会产生数据损坏,因为如果不写入另一个值(这可能因为没有使用 multi 而失败了)。

关于node.js - Redis 'multi' 使用动机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20475425/

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