Redis
 sql >> база данни >  >> NoSQL >> Redis

задаване на изтичане на стойностите на Hashmap в Redis?

Не, не можете да създадете хеш с SETEX (което е низови методи). Можете да се обадите на EXPIRE на хеш ключ, но това ще изтече целия хеш. В момента няма поддръжка за изтичане на индивидуални двойки хеш ключ/стойност.

Актуализация:

Ако искате да зададете срок на валидност за целия хеш, докато задавате отделните му елементи, можете да го постигнете по няколко начина.

  1. Използвайте тръбопроводи. Pipelining е специален режим на работа, при който клиентът на redis издава няколко команди в бърза последователност, без да чака отговор, за да изпрати следващата. Ето един пример в ruby:

    redis.pipelined do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  2. Използвайте транзакции. Без наблюдавани ключове това е подобно на конвейера (защото транзакция не може да бъде прекъсната). Гарантирано е, че командите ще се изпълняват заедно и атомарно (няколко тръбопроводи могат да се изпълняват последователно, транзакциите се сериализират)

    redis.multi do
      redis.hset "foo", "bar", 1
      redis.expire "foo", 300
    end
    
  3. Използвайте lua скриптове, за да приложите вашата персонализирана команда HSETEX. Тя ще бъде изпълнена атомарно и просто трябва да изпратите една команда (вместо 2 (конвейер) или 4 (транзакция)).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не може да се свърже със сървъра Redis от Docker контейнера

  2. Има ли вграждаща Java алтернатива на Redis?

  3. Приложението Spring за почивка на данни не получава данни от базата данни след внедряване на кеширане на redis

  4. Каква е разликата между area и BoundingBox от изходния код на Redis

  5. Django Celery получава брой задачи