---
acl_categories:
- '@keyspace'
- '@read'
- '@fast'
arguments:
- display_text: key
key_spec_index: 0
name: key
type: key
arity: 2
categories:
- docs
- develop
- stack
- oss
- rs
- rc
- oss
- kubernetes
- clients
command_flags:
- readonly
- fast
complexity: O(1)
description: Returns the expiration time in milliseconds of a key.
group: generic
hidden: false
hints:
- nondeterministic_output
history:
- - 2.8.0
- Added the -2 reply.
key_specs:
- RO: true
access: true
begin_search:
spec:
index: 1
type: index
find_keys:
spec:
keystep: 1
lastkey: 0
limit: 0
type: range
linkTitle: PTTL
railroad_diagram: /images/railroad/pttl.svg
since: 2.6.0
summary: Returns the expiration time in milliseconds of a key.
syntax_fmt: PTTL key
title: PTTL
---
Like [`TTL`]({{< relref "/commands/ttl" >}}) this command returns the remaining time to live of a key that has an
expire set, with the sole difference that [`TTL`]({{< relref "/commands/ttl" >}}) returns the amount of remaining
time in seconds while `PTTL` returns it in milliseconds.
In Redis 2.6 or older the command returns `-1` if the key does not exist or if the key exist but has no associated expire.
Starting with Redis 2.8 the return value in case of error changed:
* The command returns `-2` if the key does not exist.
* The command returns `-1` if the key exists but has no associated expire.
## Examples
{{% redis-cli %}}
SET mykey "Hello"
EXPIRE mykey 1
PTTL mykey
{{% /redis-cli %}}
## Redis Software and Redis Cloud compatibility
| Redis
Software | Redis
Cloud | Notes |
|:----------------------|:-----------------|:------|
| ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | |
## Return information
{{< multitabs id="pttl-return-info"
tab1="RESP2"
tab2="RESP3" >}}
One of the following:
* [Integer reply](../../develop/reference/protocol-spec#integers): TTL in milliseconds.
* [Integer reply](../../develop/reference/protocol-spec#integers): `-1` if the key exists but has no associated expiration.
* [Integer reply](../../develop/reference/protocol-spec#integers): `-2` if the key does not exist.
-tab-sep-
One of the following:
* [Integer reply](../../develop/reference/protocol-spec#integers): TTL in milliseconds.
* [Integer reply](../../develop/reference/protocol-spec#integers): `-1` if the key exists but has no associated expiration.
* [Integer reply](../../develop/reference/protocol-spec#integers): `-2` if the key does not exist.
{{< /multitabs >}}