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?
There is no default TTL. By default, keys are set to live forever.
Redis HSET command is used to set field in the hash stored at the key to value. If the key does not exist, a new key holding a hash is created. If the field already exists in the hash, it is overwritten.
The only difference between the commands HSET and HMSET is the return value of the commands.
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:
hExpire
method/command 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)
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With