Redis - 查看一个 KEY 剩多久过期 ¶
作者:KK
发表日期:2020.03.05
要点速读 ¶
命令就是
ttl
,用法是ttl key名
,会返回距离过期时刻的剩余秒数。如果检查一个并不存在的 key,会返回
-2
。
命令行测试 ¶
redis-cli
# 先试试 key1 ,返回 -2 说明这个 key 并不存在
ttl key1
#设置 key1 的值为 value1,60秒后过期
set key1 value1 EX 60
#得到 value1
get key1
#我这里显示57,就是剩下57秒过期
ttl key1
# 56……
ttl key1
# 1分钟后,输出 nil
get key1
# -2
ttl key1
PHP代码测试 ¶
$redis = new \Redis();
$redis->connect('请填写测试的redis服务器地址');
echo '这个key1当前不存在,ttl的值是:' . $redis->ttl('key1') . PHP_EOL;
$redis->setex('key1', 60, 'value1');
echo '设置后的取出值是:' . $redis->get('key1') . PHP_EOL;
echo '剩余过期秒数:' . $redis->ttl('key1') . PHP_EOL;
sleep(3);
echo '设置3秒后,剩余过期秒数:' . $redis->ttl('key1') . PHP_EOL;
sleep(2);
echo '再2秒后,剩余过期秒数:' . $redis->ttl('key1') . PHP_EOL;
echo '值还在:' . $redis->get('key1') . PHP_EOL;
sleep(58);
echo '已过期,没有值了:' . $redis->get('key1');
输出如下:
这个key1当前不存在,ttl的值是:-2
设置后的取出值是:value1
剩余过期秒数:60
设置3秒后,剩余过期秒数:57
再2秒后,剩余过期秒数:55
值还在:value1
已过期,没有值了: