Node-redis: 使用 node-redis 删除 redis 中的键数组

创建于 2015-09-29  ·  5评论  ·  资料来源: NodeRedis/node-redis

我有像 ["aaa","bbb","ccc"] 这样的键数组,所以我想使用一个命令从 redis 中删除所有这些键。 我不想使用循环进行迭代。 我阅读了有关 redis 命令 DEL 和终端 redis-client 它的工作,但使用 nodejs 它不起作用

Redisclient.del(tokenKeys,function(err,count){
Logger.info("计数为",count)
Logger.error("err is ",err)
})

其中 tokenKeys=["aaa","bbb","ccc"] ,如果我发送一个像 tokenKeys="aaa" 这样的键,这个代码就可以工作

question

所有5条评论

client.del可以接受可变数量的参数。 您可以使用apply将数组转换为参数(但您还需要推送回调)。 它看起来像这样:

var tokenKeys = ["aaa","bbb","ccc"];

tokenKeys.push(function(err,count){
Logger.info("count is ",count)
Logger.error("err is ",err)
});

Redisclient.del.apply(Redisclient,tokenKeys);

这有点奇怪,但它会在不迭代的情况下完成工作。

@abhaygarg这应该就像你写的那样开箱即用。 你能提供更多你的代码吗? 我猜错误在您的代码中。 你用的是什么版本?

@stockholmux这不是问题的解决方案。 实际上最好立即使用数组表示法而不是使用参数(它们将被重写为内部数组)。

是的,你可以直接在 Redisclient.del(tokenKeys,function(err,count){ 中传递数组
Logger.info("计数为",count)
Logger.error("err is ",err)
})
它删除很好你可以在 Redisclient.del() 中传递数组它工作正常

app.redis.keys('key_*', (err, keys) => {
    keys.forEach(key => {
        app.redis.del(key)
    })
})

@knoxcard仅供参考 - 不要使用 KEYS - 这在大型生产系统上很危险。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Atala picture Atala  ·  3评论

juriansluiman picture juriansluiman  ·  3评论

twappworld picture twappworld  ·  7评论

shmendo picture shmendo  ·  6评论

aletorrado picture aletorrado  ·  6评论