我Redis的服务器不会删除键,当时间到现场达到0。
下面是一个示例代码:
redis-cli
>SET mykey "ismykey"
>EXPIRE mykey 20
#check TTL
>TTL mykey
>(integer) 17
> ...
>TTL mykey
>(integer) -1
#mykey chould have expired:
>EXISTS mykey
>(integer) 1
>#oh still there, check its value
>GET mykey
>"ismykey"
如果我检查通过的Redis的信息回报,它说0键则被过期。
任何的想法?
谢谢。
既然你做了“......”这是很难肯定地说,但我说你那部分,这将有效地消除在呼气时设置的myKey。
从EXPIRE手册
当钥匙使用DEL命令删除或改写使用SET或GETSET命令超时仅清零
另外,关于从TTL -1回复
返回值
整型回复:TTL以秒-1时,关键不存在或没有超时。
编辑:请注意,这种行为在Redis的2.8改变
与Redis的2.8开始在错误的情况下返回值更改:
该命令返回-2如果该键不存在。
该命令返回-1,如果关键的存在,但没有相关的到期。
换句话说,如果你的键存在,它似乎具有持久性,即没有任何到期集。
编辑:看来我可以重现这个,如果我创建的Redis从服务器上的关键,从不会删除无主输入密钥,因为通常你不会在本地上的从创建关键点。 这是这里的情况?
然而同时连接到主从设备将不能独立到期键(但将等待DEL从主设备的),他们仍然会采取全状态的到期现有数据集中,所以当奴隶被选举为掌握它就能独立到期的钥匙,完全作为主。