Muitas vezes, você deseja exportar dados do redis como um csv. O redis-cli tem um
--csv
sinalizador, mas só funciona se você quiser exportar uma única chave. Mas com um pouco de magia de linha de comando, você pode exportar qualquer número de chaves como um formato CSV.Este script exportará os campos id, nome de exibição, reputação e local para todos os hashes começando com
users:*
Usando Digitalizar para selecionar chaves
O primeiro passo é usar redis-cli com o
--scan
e --pattern
sinalizadores para selecionar as chaves de interesse. Portanto, para selecionar as chaves correspondentes a users:*, você executará o comando redis-cli --scan --pattern users:*
. Observe que o redis só permite padrões de estilo glob. Então
users:*
corresponderá a users:1234
e também corresponde a users:1234:favourites
. Se você quiser mais controle, pode seguir com um grep e um regex. redis-cli --scan --pattern users:* | grep -e '^users:[^:]*$'
Usando o AWK para executar comandos Redis
Para cada chave que selecionamos, precisamos executar um comando redis para buscar os dados dessa chave. No nosso caso, queremos buscar campos de um hash, então usamos o
hmget
comando. O $0
no script awk refere-se à chave que selecionamos anteriormente usando scan. A saída do script awk é canalizada para redis-cli. Cada comando é executado e a saída é retornada como um CSV devido ao
--csv
bandeira. Personalizando este script
- Se seu servidor redis não estiver no host local, você terá que fornecer o host, a porta e a senha duas vezes no comando, basicamente sempre que você chama redis-cli.
- Você pode executar qualquer comando em vez de
hmget
Veja também
- Renomear campos em um hash
- Renomear várias chaves usando a digitalização
- Definir expiração para várias chaves
- Excluir chaves que correspondem a um padrão
- A GUI do RDBTools para Redis permite visualizar suas ações em massa e fornece uma GUI poderosa para gerenciar dados no Redis. É um download gratuito!