如何通过TTL查找redis密钥

我想findTTL为-1任何/所有redis密钥。 这是每一个不会过期的关键。 我已经尝试了几个GUI客户端,他们都没有closures这个function。

我发现这个答案似乎提供了一种方法来从命令行。 但是,当我在本地或在远程Redis主机上尝试时出现“无效参数”错误。

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

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

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

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

(两个括号代替)。