Estou tentando exportar todos os valores de uma lista redis usando redis-cli
como uma lista de strings em scripts de shell. No entanto, existem alguns textos indesejados dos quais não consegui me livrar.
Para a seguinte lista q1
:
redis:6379> 5 lpush q1 "{\"id\":1}"
(integer) 1
(integer) 2
(integer) 3
(integer) 4
(integer) 5
redis:6379>
Se eu exportar diretamente usando LRANGE
, o resultado terá um número de linha e um parêntese no início de cada linha (que precisa ser removido).
:/# redis-cli -h redis LRANGE q1 0 -1
1) "{\"id\":1}"
2) "{\"id\":1}"
3) "{\"id\":1}"
4) "{\"id\":1}"
5) "{\"id\":1}"
Se eu usar redis-cli --csv
, haverá uma vírgula entre os valores (que precisa ser removida):
:/# redis-cli -h redis --csv LRANGE q1 0 -1
"{\"id\":1}","{\"id\":1}","{\"id\":1}","{\"id\":1}","{\"id\":1}"
Como posso fazer o redis exportar apenas os valores da lista, um em cada linha?
No meu laptop
redis-cli
, usar a--raw
opção de linha de comando produz uma saída apenas com os valores da lista simples. Ou seja, sem os prefixos "1)", "2)", etc.A versão 6.0.9 do Redis adicionou a
--raw
opção de linha de comando aoredis-cli
, portanto, as versões mais antigas não oferecem suporte a ela.