Redis
 sql >> Database >  >> NoSQL >> Redis

Ottieni chiavi e valori Redis al prompt dei comandi

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