Redis的ttl是在实战中的一个常用的命令,在学redis的过程中单纯的用过,没有更加深入的了解。下面附上Redis的官方文档:
TTL key
起始版本:1.0.0
时间复杂度:O(1)
返回key剩余的过期时间。 这种反射能力允许Redis客户端检查指定key在数据集里面剩余的有效期。
在Redis 2.6和之前版本,如果key不存在或者已过期时返回-1。
从Redis2.8开始,错误返回值的结果有如下改变:
如果key不存在或者已过期,返回 -2
如果key存在并且没有设置过期时间(永久有效),返回 -1 。
另见PTTL命令返回相同的信息,只不过他的时间单位是毫秒(仅适用于Redis 2.6及更高版本)。
返回值
Integer reply: key有效的秒数(TTL in seconds),或者一个负值的错误 (参考上文)。
例子
redis> SET mykey "Hello"
OK
redis> EXPIRE mykey 10 # 设置mykey 10秒后过期
(integer) 1
redis> TTL mykey # 查看mykey剩余的过期时间
(integer) 10
redis>
设置过期时间通常与EXPIRE进行结合使用,而ttl函数是对其进行查询过期时间。
补充:2020-11-11
碰见一个问题,因为springcloude还没开始,所以redis一直没有应用到实战。
问:在项目中,如果需要给数据进行预热,怎么找出需要预热的字段?用redis自带的功能。
对数据进行预热,在Redis4.0之后出现了 redis-cli -hotkeys 命令,提供热点发现。但是这种方式在执行过程中如果参数比较多的话,会导致执行起来会比较慢。
在网上查看类似的帖子之后,发现还有一种方式:monitor命令 。
官网上的描述是这样的:
MONITOR 是一个调试命令,返回服务器处理的每一个命令,它能帮助我们了解在数据库上发生了什么操作,可以通过redis-cli和telnet命令使用.
使用SIGINT (Ctrl-C)来停止 通过redis-cli使用MONITOR命令返回的输出.