您可以使用 的 Redis交易 强> 。 Redis事务是以顺序和原子方式发生的事务。你可以阅读有关交易的信息 这里
你可以通过使用来做到这一点 的 多 强> redis中的命令。
如果你正在使用 的 Redis的 强> (着名的npm redis客户端)然后暴露 的 多 强> 功能。你可以阅读有关多 这里
你可以通过使用多个 -
var redis = require("redis"), client = redis.createClient(), multi; // start a separate multi command queue multi = client.multi(); multi.lpop("keyName", function() { // do your thing multi.exec(function (err, replies) { console.log(replies); // 101, 2 }); }); // drains multi queue and runs atomically
从redis 3.2开始,您可以查看
通过在多操作中使用lrange和ltrim,它应该确保两者都以原子方式执行,并且两者之间没有中断。 在下面的示例中,有一个用于在给定键上使用multi的用法,count用于表示要迭代的对象的数量。它返回第一个(最旧的)n对象(通过使用具有给定计数的lrange),然后从redis中删除它们(根据给定的计数使用trim)。
static multiExecutionRedis (key, count){ return new Promise((resolve, reject) => { console.log("running multi execution in the client"); let client = Reporter.cache; let multi = client.multi(); multi.lrange(key, (count * -1), -1) .ltrim(key, 0, (++count) * -1) .exec((error, data) => { if (error) { console.log(error); reject(error); } else { console.log("returning valid data"); resolve(data[0]); } }); });
对于redis> 4.0,你可以在这里查看 https://github.com/RedisLabsModules/redex#rxlists