TTL API change: TTL returns -2 for non existing keys.

The previous behavior was to return -1 if:

1) Existing key but without an expire set.
2) Non existing key.

Now the second case is handled in a different, and TTL will return -2
if the key does not exist at all.

PTTL follows the same behavior as well.
This commit is contained in:
antirez
2012-11-12 23:04:36 +01:00
parent 388cc20418
commit 50c41de752
2 changed files with 26 additions and 1 deletions

View File

@ -121,13 +121,31 @@ start_server {tags {"expire"}} {
list $a $b
} {somevalue {}}
test {PTTL returns millisecond time to live} {
test {TTL returns tiem to live in seconds} {
r del x
r setex x 10 somevalue
set ttl [r ttl x]
assert {$ttl > 8 && $ttl <= 10}
}
test {PTTL returns time to live in milliseconds} {
r del x
r setex x 1 somevalue
set ttl [r pttl x]
assert {$ttl > 900 && $ttl <= 1000}
}
test {TTL / PTTL return -1 if key has no expire} {
r del x
r set x hello
list [r ttl x] [r pttl x]
} {-1 -1}
test {TTL / PTTL return -2 if key does not exit} {
r del x
list [r ttl x] [r pttl x]
} {-2 -2}
test {Redis should actively expire keys incrementally} {
r flushdb
r psetex key1 500 a