Node-redis: Exclua a matriz de chaves no redis usando node-redis

Criado em 29 set. 2015  ·  5Comentários  ·  Fonte: NodeRedis/node-redis

Eu tenho matrizes de chaves como ["aaa", "bbb", "ccc"], então quero excluir todas essas chaves do redis usando um comando. Não quero iterar usando loop. Eu li sobre o comando redis DEL e no terminal redis-client funciona, mas usando nodejs não funciona

Redisclient.del (tokenKeys, function (err, count) {
Logger.info ("contagem é", contagem)
Logger.error ("errar é", errar)
})

onde tokenKeys = ["aaa", "bbb", "ccc"], este código funcionará se eu enviar uma chave como tokenKeys = "aaa"

question

Todos 5 comentários

client.del pode receber um número variável de argumentos. Você pode usar apply para converter seu array em argumentos (mas você também precisará enviar seu callback). Seria mais ou menos assim:

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);

É um pouco estranho, mas funcionará sem iterar.

@abhaygarg Isso deve funcionar imediatamente como você escreveu. Você poderia fornecer mais do seu código? Acho que o erro está em algum lugar do seu código. E qual versão você usa?

@stockholmux, essa não é a solução para o problema. Na verdade, é melhor usar a notação de array imediatamente em vez de usar argumentos (eles serão reescritos em um array interno).

sim, está funcionando, você pode passar array diretamente em Redisclient.del (tokenKeys, function (err, count) {
Logger.info ("contagem é", contagem)
Logger.error ("errar é", errar)
})
deletar bem você pode passar array em Redisclient.del () funciona bem

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

@knoxcard FYI - Não use CHAVES - é perigoso em grandes sistemas de produção.

Esta página foi útil?
0 / 5 - 0 avaliações