No hay un comando para eso, pero puede escribir un script para hacerlo.
Deberá realizar para cada tecla un comando de "tipo":
> type <key>
y dependiendo de la respuesta realizar:
- para "cadena":
get <key>
- para "hash":
hgetall <key>
- para "lista":
lrange <key> 0 -1
- para "conjunto":
smembers <key>
- para "zset":
zrange <key> 0 -1 withscores
Tenga en cuenta que para hashes y conjuntos ordenados obtendrá las claves/puntuaciones y valores.
Un posible sh
implementación:
#!/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
Pero ten en cuenta:
Advertencia:considere KEYS
como un comando que solo debe usarse en entornos de producción con extremo cuidado. Puede arruinar el rendimiento cuando se ejecuta en bases de datos grandes. Este comando está destinado a la depuración y operaciones especiales, como cambiar el diseño del espacio de teclas.
https://redis.io/commands/keys