sql >> Base de Datos >  >> NoSQL >> Redis

Obtener claves y valores de Redis en el símbolo del sistema

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