2012-03-22 14 views

risposta

45

Modificato da un sito che non riesco a trovare ora.

redis-cli keys "*" | while read LINE ; do TTL=`redis-cli ttl "$LINE"`; if [ $TTL -eq -1 ]; then echo "$LINE"; fi; done; 
+7

TTL è '-1' per nessuna chiave di scadenza (invece di' 3600'). – Niloct

+1

Questo è un punto eccellente, grazie per averlo fatto notare. Modificato la risposta e inviando il tuo commento. –

+0

Viene visualizzato un errore quando si prova su un host redis remoto. Mi collego all'host remoto e quindi dal prompt che eseguo: 'keys" * "| mentre leggi LINE; fai TTL = 'redis-cli ttl $ LINE'; se [$ TTL -eq -1]; quindi echo "$ LINE"; fi; fatto; 'ma ottengo un errore" argomenti non validi " – emersonthis

1

Nel caso in cui qualcuno sta ottenendo argomenti cattivi o numero errato di errore di argomenti, mettete tra virgolette doppie $ LINE.

Quindi, sarebbe

redis-cli keys "*" | while read LINE ; do TTL=`redis-cli ttl "$LINE"`; if [ $TTL -eq -1 ]; then echo "$LINE"; fi; done; 

Questo accade quando ci sono spazi nella chiave.

+0

Questo è un miglioramento (correzione di bug) sulla risposta esistente e come tale dovrebbe essere una modifica di quella risposta. – AndrewF

Problemi correlati