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:considereKEYS
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