如何通过TTL查找redis密钥

eme*_*his 5 linux redis redis-cli

我想找到任何/所有带TTL的redis键-1.这是每个未设置为过期的密钥.我已经尝试了几个GUI客户端,但它们似乎都没有关闭此功能.

我发现这个答案似乎提供了一种从命令行执行此操作的方法.但是当我在本地或在我的远程redis主机上尝试时,我得到"无效参数"错误.

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

远程 $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;

我究竟做错了什么?有一个更好的方法吗?

Nil*_*oct 0

由于您正在粘贴bash,远程调用将不起作用脚本粘贴到 redis-cli 的提示符中,因此

另外,尝试在条件表达式上使用它:[[ $TTL -eq -1 ]]

(用两个括号代替)。