Upstash Documentation

PTTL

Get TTL in milliseconds.
2 min read

Use PTTL to read how much longer a key will live, in milliseconds.

The reply is -1 when the key exists but has no expiration and -2 when the key does not exist, so a missing key and a permanent one are easy to tell apart. It is the millisecond form of TTL, and the extra precision matters for short-lived keys such as locks, where rounding to whole seconds hides most of the remaining lifetime.

Syntax#

Arguments#

ArgumentRequiredRepeatableDescription
<key>YesNoRedis key targeted by the command.

Important points#

  • Negative integer replies are sentinel values, not durations or timestamps; see the response description for missing or persistent data.

Response#

The reply reports the result of the operation. Error replies have the same shape in RESP2 and RESP3 and are surfaced as exceptions by the SDKs below.

ProtocolReply
RESP2Integer: remaining lifetime in milliseconds, -1 if the key has no expiration, -2 if the key does not exist
RESP3Integer: remaining lifetime in milliseconds, -1 if the key has no expiration, -2 if the key does not exist
Note

Client libraries often decode bulk strings, maps, sets, and numeric strings into language-native values. The table describes the Redis wire reply.

Examples#

TCP examples use the TLS REDIS_URL from the Upstash console. REST examples use UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN.

Redis CLI
@upstash/redis
upstash_redis
ioredis
node-redis
redis-py
go-redis
jedis
redis-rs