Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Obtenha chaves e valores do Redis no prompt de comando


Não há comando para isso, mas você pode escrever um script para fazer isso.

Você precisará executar para cada tecla um comando "type":
> type <key>

e dependendo da resposta execute:
  • para "string":get <key>
  • para "hash":hgetall <key>
  • para "lista":lrange <key> 0 -1
  • for "set":smembers <key>
  • para "zset":zrange <key> 0 -1 withscores

Tenha em mente que para hashes e conjuntos ordenados você receberá as chaves/pontuações e valores.

Um possível sh implementação:
#!/bin/sh -eu
keys=`redis-cli keys '*'`
if [ "$keys" ]; then
    echo "$keys" | while IFS= read -r key; do
        type=`echo | redis-cli type "$key"`
        case "$type" in
            string) value=`echo | redis-cli get "$key"`;;
            hash) value=`echo | redis-cli hgetall "$key"`;;
            set) value=`echo | redis-cli smembers "$key"`;;
            list) value=`echo | redis-cli lrange "$key" 0 -1`;;
            zset) value=`echo | redis-cli zrange "$key" 0 -1 withscores`;;
        esac
        echo "> $key ($type):"
        echo "$value" | sed -E 's/^/    /'
    done
fi

Mas observe:

Aviso:considere KEYS como um comando que deve ser usado apenas em ambientes de produção com extremo cuidado. Pode arruinar o desempenho quando executado em grandes bancos de dados. Este comando destina-se a depuração e operações especiais, como alterar o layout do keyspace.

https://redis.io/commands/keys