Saltar al contenido

Obtener Redis keys y valores en el símbolo del sistema

Encontramos la solución a esta escollo, o por lo menos eso creemos. Si sigues con dudas coméntalo y sin dudas

Solución:

No hay un comando para eso, pero puede escribir un script para hacerlo.

Tendrá que realizar para cada key un comando de “tipo”:

> type 

y dependiendo de la respuesta realizar:

  • por “string”: get
  • para “hachís”: hgetall
  • para “lista”: lrange 0 -1
  • para “conjunto”: smembers
  • para “zset”: zrange 0 -1 withscores

Tenga en cuenta que para hashes y conjuntos ordenados obtendrá el keys/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 tenga 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/comandos/keys

Respuesta corta:

for i in $(redis-cli KEYS '*'); do echo $i; redis-cli GET $i; done

Respuesta larga:

para obtener todo keys:

redis-cli KEYS '*' 

para obtener el valor de un key:

redis-cli GET 

y si quieres todos los valores:

for i in $(redis-cli KEYS '*'); do redis-cli GET $i; done

y finalmente todo keys y valores:

for i in $(redis-cli KEYS '*'); do echo $i; redis-cli GET $i; done

Con redis >= 5.xun nuevo tipo de datos stream Fue presentado. Entonces el

> type 

debería darte stream. Para obtener sus valores:

> XRANGE  - +

Te mostramos las comentarios y valoraciones de los lectores

Si piensas que te ha resultado de utilidad este post, sería de mucha ayuda si lo compartieras con otros entusiastas de la programación y nos ayudes a extender nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *