Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

322
Visualizações
Nodo que ejecuta el script Lua para Redis. ¿Cómo devolver el conjunto ordenado del script Lua a Node?

Este es el código de script de Lua en el archivo test.lua:

 local ips_key = 'production:ips' local ids = redis.call('ZRANGE', ips_key, 0, '+inf', 'WITHSCORES') local result = {} for i, name in ipairs(ids) do table.insert(result, name) end return js.global:Array(table.unpack(result))

Estoy usando ioredis, que es un redis npm para evaluar este script lua. el valor devuelto no está definido. ¿Qué estoy haciendo mal? ¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Hay varios problemas con el script anterior.

L#2: ZRANGE no acepta +inf (o -inf ) como argumentos, la entrada debe ser índices en el conjunto ordenado; reemplácelo con -1 para recuperar el rango completo de elementos.

L#7: No hay una biblioteca js en Lua de Redis, por lo que no funcionará (y no es necesaria de todos modos)

L#7: table.unpack es Lua 5.3, mientras que Redis es 5.1; use unpack en su lugar cuando sea necesario.

L#7: No es necesario unpack el resultado que está devolviendo (si lo hace, solo recuperará el primer elemento de la matriz y eso es todo)

L#1 Entiendo que esto es una prueba, pero siempre use la tabla de entrada KEYS para pasar sus claves al script; nunca codifique/genere nombres clave dentro de él.

Con todo, esto debería "funcionar" cuando se llama con una sola tecla como entrada:

 local ips_key = KEYS[1] local ids = redis.call('ZRANGE', ips_key, 0, -1, 'WITHSCORES') local result = {} for i, name in ipairs(ids) do table.insert(result, name) end return result

Como nota final, el código actualmente "funciona" pero no hace nada: copia los resultados de la llamada a ZRANGE y los devuelve. Dicho de otra manera, la respuesta es la misma que simplemente llamar a ZRANGE regularmente sin Lua.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda