redis hvals: obtém retorno como estrutura de array

0

Quando faço

redis -h host -a password -p port HVALS myhash

comando no redis, ele retornará todos os valores daquele hash, um por linha. No meu caso, os valores são strings formatadas em JSON.

Eu quero armazenar esse retorno na variável shell e depois usar em loop. Essas cadeias são separadas por espaços por padrão.

Eu posso tratar todas as questões para evitar qualquer problema em usar esta variável com a estrutura de loop, mas gostaria de saber se redis tem alguma maneira de retornar uma estrutura array de strings com o comando redis.

Para ter uma ideia sobre o que estou procurando, pense em algo semelhante ou com o mesmo resultado que este comando:

redis -h host -a password -p port HVALS myhash | jq -s

Nesse caso, o jq funcionará bem, porque ele reconhecerá os objetos JSON e criará uma matriz de matrizes.

Eu quero saber se é possível obter qualquer estrutura de array de valores usando apenas redis, e não importa se o resultado final não é um JSON válido (esqueça o fato de minhas strings serem strings JSON). E eu quero usar apenas redis para fazer isso. Eu posso fazer no lado do script de shell, mas não é a questão.

    
por Francisco Panis Kaseker 12.09.2018 / 15:57

1 resposta

0

Se o comando redis -h host -a password -p port HVALS myhash puder retornar o resultado à medida que cada entrada for separada por <space> , você poderá usar matrizes.

hash_array=($(redis -h host -a password -p port HVALS myhash))

e, em seguida, você itera com for loop

for item in "${hash_array[@]}"
do
echo "$item"
done
    
por 12.09.2018 / 16:35

Tags