sql >> Databasteknik >  >> NoSQL >> Redis

Få Redis-nycklar och värden vid kommandotolken

Det finns inget kommando för det, men du kan skriva ett skript för att göra det.

Du måste utföra ett "typ"-kommando för varje tangent:

> type <key>

och beroende på svaret utför:

  • för "sträng":hämta
  • för "hash":hgetall
  • för "lista":lrange 0 -1
  • för "set":smembers
  • för "zset":zrange 0 -1 med poäng

Tänk på att för hash och sorterade set kommer du att få nycklarna/poängen och värdena.

En möjlig sh implementering:

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

Men notera:

Varning:överväg NYCKLAR som ett kommando som endast bör användas i produktionsmiljöer med extrem försiktighet. Det kan förstöra prestanda när det körs mot stora databaser. Det här kommandot är avsett för felsökning och speciella operationer, som att ändra din tangentrymdslayout.

https://redis.io/commands/keys



  1. hantera @ i mongodb anslutningssträng

  2. Kan inte ansluta Redis Cluster i Elasticache till PHP med hjälp av phpredis-biblioteket

  3. Hur torkar man Heroku Redis?

  4. ClusterControl 1.5-dokumentation - Vad är nytt