Deleting a Redis Key After a Certain Time in Java (Detailed Guide w/ Code Examples)

Use Case(s)

  1. Session management in web applications: If you want to automatically log out users after a certain period of inactivity.
  2. Caching: To keep data available for a specific period, after which it should be re-fetched or calculated.

Code Examples

Let’s use Jedis, a popular Java client for Redis. You can add keys that expire by using the pexpire (with time in milliseconds) or expire (with time in seconds) commands.

Here's an example of setting a key with an expiration time:

import redis.clients.jedis.Jedis; Jedis jedis = new Jedis('localhost'); jedis.set('key', 'value'); jedis.expire('key', 60); // The key will be deleted after 60 seconds

And here's another example using pexpire:

import redis.clients.jedis.Jedis; Jedis jedis = new Jedis('localhost'); jedis.set('key', 'value'); jedis.pexpire('key', 60000); // The key will be deleted after 60000 milliseconds (60 seconds)

Best Practices

  • Avoid setting very short expiration times as it might lead to the key getting expired before your application gets a chance to read it.
  • Use meaningful and consistent key names to avoid accidentally deleting wrong keys.

Common Mistakes

  • Not handling the case when the Redis server is down. Always wrap your code in try-catch blocks and handle exceptions properly.
  • Setting an expiration time on a key that already has an expiry could potentially lead to unexpected results if not managed correctly.


Q: What happens if I try to access a key after its set expiration time?

A: If a key is accessed after its set expiration time, Redis would have already automatically deleted it. Therefore, it will appear as if the key does not exist.

Was this content helpful?

Start building today

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