6

我想找到任何/所有带有 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;

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

4

1 回答 1

0

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

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

(改为两个括号)。

于 2015-06-02T18:11:12.423 回答