Non esiste un comando per questo, ma puoi scrivere uno script per farlo.
Dovrai eseguire per ogni chiave un comando di "tipo":
> type <key>
e in base alla risposta eseguire:
- per "stringa":
get <key>
- per "hash":
hgetall <key>
- per "list":
lrange <key> 0 -1
- per "set":
smembers <key>
- per "zset":
zrange <key> 0 -1 withscores
Tieni presente che per gli hash e gli insiemi ordinati otterrai le chiavi/i punteggi e i valori.
Un possibile sh
attuazione:
#!/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
Ma nota:
Attenzione:considera KEYS
come comando da utilizzare solo in ambienti di produzione con estrema cura. Potrebbe rovinare le prestazioni quando viene eseguito su database di grandi dimensioni. Questo comando è destinato al debug e alle operazioni speciali, come la modifica del layout dello spazio delle chiavi.
https://redis.io/commands/keys