2015-06-02 210 views
5

我想查找TTL的任何/所有redis密钥是-1。这是每个不会过期的关键。我已经尝试了几个GUI客户端,并且他们都没有关闭这个功能。如何通过TTL查找redis密钥

我发现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