我正在使用 node_redis。我想一次从多个列表中弹出元素。
这是我的代码。
setInterval(function () {
redisClient.rpop('qwerty123', function (errorMessage, responseData) {
socketData.emit('qwerty123', {
'qwerty123': responseData.toString()
});
});
redisClient.rpop('qwerty234', function (errorMessage, responseData) {
socketData.emit('qwerty234', {
'qwerty234': responseData.toString()
});});
redisClient.rpop('qwerty345', function (errorMessage, responseData) {
socketData.emit('qwerty345', {
'qwerty345': responseData.toString()
});});
}, 1000);
它一个接一个地处理列表,但我想同时从所有三个列表中弹出。
最佳答案
使用 Redis 事务似乎是解决问题的最简单方法:
MULTI
RPOP key1
RPOP key2
RPOP key3
EXEC
Redis transactions official doc here 中有更多信息.为了使用 Node.js 的事务,请引用客户端库文档。
关于list - 如何在 Redis 中一次弹出多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23757615/