2015-06-02 4 views
5

Я хочу найти любые/все ключи redis с TTL -1. Это каждый ключ, который не истекает. Я попробовал несколько клиентов GUI, и ни один из них не отключил эту функцию.Как найти ключи redis от TTL

Я нашел this answer, который, как представляется, предлагает способ сделать это из командной строки. Но я получаю ошибки «неправильного аргумента» при попытке локально или на удаленном хосте redis.

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

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

Что я делаю неправильно? Есть лучший способ сделать это?

ответ

0

Удаленный вызов не будет работать, так как вы вставляете bash скрипт в приглашение redis-cli.

Кроме того, попробуйте использовать это на условных выражениях: [[ $TTL -eq -1 ]]

(две скобки вместо).

+0

Нет локального скрипта также не работает. Это аналогичная ошибка в аргументах – emersonthis

+0

Может быть, местный не работает из-за 0 результатов на моем локальном? Я не знаю bash достаточно хорошо, чтобы предсказать, как это будет обрабатывать – emersonthis