Nie ma do tego polecenia, ale możesz napisać skrypt, który to zrobi.
Będziesz musiał wykonać dla każdego klawisza polecenie „typu”:
> type <key>
i w zależności od odpowiedzi wykonaj:
- dla "string":
get <key>
- dla "hash":
hgetall <key>
- dla "listy":
lrange <key> 0 -1
- dla "set":
smembers <key>
- dla "zset":
zrange <key> 0 -1 withscores
Pamiętaj, że w przypadku skrótów i posortowanych zestawów otrzymasz klucze/wyniki i wartości.
Możliwe sh
realizacja:
#!/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
Ale pamiętaj:
Ostrzeżenie:rozważ KEYS
jako polecenie, które powinno być używane tylko w środowiskach produkcyjnych z najwyższą ostrożnością. Może zrujnować wydajność, gdy jest wykonywany na dużych bazach danych. To polecenie jest przeznaczone do debugowania i operacji specjalnych, takich jak zmiana układu przestrzeni klawiszy.
https://redis.io/commands/keys