Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Rufen Sie Redis-Schlüssel und -Werte an der Eingabeaufforderung ab

Dafür gibt es keinen Befehl, aber Sie können dafür ein Skript schreiben.

Sie müssen für jede Taste einen "Type"-Befehl ausführen:

> type <key>

und je nach Antwort ausführen:

  • für "String":get <key>
  • für "hash":hgetall <key>
  • für "Liste":lrange <key> 0 -1
  • für "set":smembers <key>
  • für "zset":zrange <key> 0 -1 withscores

Denken Sie daran, dass Sie für Hashes und sortierte Sätze die Schlüssel/Ergebnisse und Werte erhalten.

Ein mögliches sh Implementierung:

#!/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

Aber beachten Sie:

Warnung:Betrachten Sie KEYS als Befehl, der in Produktionsumgebungen nur mit äußerster Vorsicht verwendet werden sollte. Es kann die Leistung beeinträchtigen, wenn es für große Datenbanken ausgeführt wird. Dieser Befehl ist zum Debuggen und für spezielle Operationen gedacht, wie z. B. das Ändern Ihres Keyspace-Layouts.

https://redis.io/commands/keys