Не, не можете да създадете хеш с SETEX
(което е низови методи). Можете да се обадите на EXPIRE
на хеш ключ, но това ще изтече целия хеш. В момента няма поддръжка за изтичане на индивидуални двойки хеш ключ/стойност.
Актуализация:
Ако искате да зададете срок на валидност за целия хеш, докато задавате отделните му елементи, можете да го постигнете по няколко начина.
-
Използвайте тръбопроводи. Pipelining е специален режим на работа, при който клиентът на redis издава няколко команди в бърза последователност, без да чака отговор, за да изпрати следващата. Ето един пример в ruby:
redis.pipelined do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Използвайте транзакции. Без наблюдавани ключове това е подобно на конвейера (защото транзакция не може да бъде прекъсната). Гарантирано е, че командите ще се изпълняват заедно и атомарно (няколко тръбопроводи могат да се изпълняват последователно, транзакциите се сериализират)
redis.multi do redis.hset "foo", "bar", 1 redis.expire "foo", 300 end
-
Използвайте lua скриптове, за да приложите вашата персонализирана команда HSETEX. Тя ще бъде изпълнена атомарно и просто трябва да изпратите една команда (вместо 2 (конвейер) или 4 (транзакция)).