Няма команда за това, но можете да напишете скрипт за това.
Ще трябва да изпълните за всеки ключ команда "type":
> type <key>
и в зависимост от отговора изпълнете:
- за "string":
get <key>
- за "хеш":
hgetall <key>
- за „списък“:
lrange <key> 0 -1
- за „set“:
smembers <key>
- за "zset":
zrange <key> 0 -1 withscores
Имайте предвид, че за хешове и сортирани набори ще получавате ключовете/резултатите и стойностите.
Възможен sh
изпълнение:
#!/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
Но имайте предвид:
Предупреждение:помислете за
KEYS
като команда, която трябва да се използва само в производствени среди с изключително внимание. Може да развали производителността, когато се изпълнява срещу големи бази данни. Тази команда е предназначена за отстраняване на грешки и специални операции, като например промяна на оформлението на вашето ключово пространство.
https://redis.io/commands/keys