【问题标题】:How to find redis keys by TTL如何通过 TTL 查找 redis 键
【发布时间】:2015-08-16 12:07:15
【问题描述】:

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

我发现this answer 似乎提供了一种从命令行执行此操作的方法。但是,当我在本地或远程 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;

我做错了什么?有没有更好的方法来做到这一点?

【问题讨论】:

    标签: linux redis redis-cli


    【解决方案1】:

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

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

    (改为两个括号)。

    【讨论】:

    • 不,本地脚本也不起作用。这是关于参数的类似错误
    • 可能由于我的本地结果为 0,本地无法正常工作?我不太了解 bash,无法预测它会如何处理
    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 2018-04-04
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多