Redis setting TTL on hSet Keys

Isengo picture Isengo · Apr 27, 2018 · Viewed 7.9k times · Source

I am on an dead end with redis cache. I want to set an TTL on the initiation of a key. The key will be set by hSet($hash, $key, $data)

expire($key, '3600')

does not seem to work. Is there an hExpire() method?

Answer

sazzad picture sazzad · Apr 27, 2018

Explanation:

Redis supports expiration only on KEY level. It does not support expiration on inner element(s) of any data structure, let alone hash.

Answer:

  1. No. There is no hExpire method/command in Redis.
  2. You're trying expire an inner element in a hash. This is not possible in Redis.

Update:

You can expire a whole data structure (a.k.a. a key).

One of the command to expire key is EXPIRE key seconds.

Assuming you are using phpredis, your method call can be setTimeout($hash, 3600).