Redis setting TTL on hSet Keys
12,275
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:
- No. There is no
hExpire
method/command in Redis. - 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)
.
Author by
Isengo
XHProf, Jenkins,Gitlab CI, Docker, Shopware, Cakephp, Symfony, Laravel, Stripe, Paypal...
Updated on June 26, 2022Comments
-
Isengo almost 2 years
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?
-
thepirat000 about 6 yearsshort answer: no. long answer: no, you can't.
-
-
Isengo about 6 yearsCan I expire or set a TTL for the hash? Tomasz says I can put a TTL on the hash itself
-
Isengo about 6 yearsWhich method is that? How can I do so?
-
Bhoomtawath Plinsut about 3 years@Isengo He meant TTL on the key itself using redis.io/commands/expire. You can't expire a hash, but you can expire each key.