Getting Default TTL with PHP Redis (Detailed Guide w/ Code Examples)

Use Case(s)

The most common use case for getting the default Time To Live (TTL) in Redis using PHP is when you need to check the expiration time on keys that have been set with a default TTL. This helps in managing memory and can be useful in scenarios where old keys are regularly pruned.

Code Examples

To get the remaining TTL of a key in Redis using PHP, you can use the ttl method provided by the PHPRedis extension. Let's assume we have a Redis instance and a key 'test'.

$redis = new Redis(); $redis->connect('', 6379); $redis->set('test', 'value', 60); // setting key with a TTL of 60 seconds $ttl = $redis->ttl('test'); // getting TTL of the key echo $ttl;

In this example, the number of seconds until the key expires will be printed out. If no TTL was set or it expired, -2 will be returned, and if the key exists but without an expiration, -1 will be returned.

Please note that there isn't a way to get a 'default' TTL because TTL in Redis is always defined on a per-key basis.

Best Practices

It's not recommended to rely on TTLs for precise timing operations since Redis doesn't guarantee exact timing due to its nature as an in-memory database. Instead, use it as a mechanism to help manage memory in an approximate way.

Common Mistakes

A common pitfall is assuming that the TTL will always return the exact value you set. Redis operates in the background and may not exactly match the TTL due to delays in operation.


Q: Can I set a default global TTL for all keys in Redis?

A: No, Redis doesn't allow setting a global TTL for all keys. TTL must be set on a per-key basis.

Was this content helpful?

Start building today

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement.