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

моите Redis ключове не изтичат

Тъй като правите „...“, трудно е да се каже със сигурност, но бих казал, че задавате mykey по време на тази част, което ефективно ще премахне изтичането.

От ръководството за EXPIRE

Времето за изчакване се изчиства само когато ключът бъде премахнат с помощта на командата DEL или презаписан с командите SET или GETSET

Също така по отношение на отговора -1 от TTL

Връщана стойност

Целочислен отговор:TTL в секунди или -1, когато ключът не съществува или няма време за изчакване.

РЕДАКТИРАНЕ:Имайте предвид, че това поведение се промени в Redis 2.8

Започвайки с Redis 2.8, връщаната стойност в случай на грешка се промени:
Командата връща -2, ако ключът не съществува.
Командата връща -1, ако ключът съществува, но няма свързано изтичане.

С други думи, ако вашият ключ съществува, той ще изглежда постоянен, т.е. няма зададено изтичане.

РЕДАКТИРАНЕ:Изглежда, че мога да възпроизведа това, ако създам ключа на подчинен сървър REDIS, подчиненият няма да изтрие ключа без главен вход, тъй като обикновено не бихте създавали ключове локално на подчинен. Тук ли е така?

Въпреки това, докато подчинените, свързани към главен, няма да изтекат ключовете независимо (но ще изчакат DEL, идващ от главния), те все пак ще приемат пълното състояние на expires, съществуващо в набора от данни, така че когато подчинен е избран за главен, той ще може да изтече срока на валидност на ключовете независимо, като действа напълно като главен.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. RQ - Изпразване и изтриване на опашки

  2. вложеното изключение е redis.clients.jedis.exceptions.JedisConnectionException:Не можа да се получи ресурс от пула

  3. Грешка jemalloc/jemalloc.h:Няма такъв файл или директория при създаване на Redis

  4. Docker&Celery - ГРЕШКА:Pidfile (celerybeat.pid) вече съществува

  5. Как да инсталирате и конфигурирате Redis на ElasticBeanstalk