如何通过TTL查找Redis的键

7
我想查找所有TTL为-1的redis键,即所有未设置过期时间的键。我尝试了几个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; 我做错了什么?有更好的方法吗?
1个回答

0

由于您将bash脚本粘贴到redis-cli提示符中,因此远程调用将无法工作。

另外,请尝试在条件表达式上使用以下内容:[[ $TTL -eq -1 ]]

(使用两个括号)。


没有本地脚本也不行。关于参数的错误类似。 - emersonthis
也许本地不起作用是因为我的本地没有0个结果?我不太了解bash如何处理它。 - emersonthis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接