cachingredisredis-cli

Redis setting TTL on hSet Keys


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?


Solution

  • 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).