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

Броят на изтичащите ключове, изброени от командата info на подчинен редис, не съответства на това, което виждам

expires съдържа съществуващи ключове с TTL, които ще изтекат, без да включват вече изтекли ключове. Пример ( с пропускане на допълнителна информация от info команда за краткост ):

127.0.0.1:6379> flushall
OK
127.0.0.1:6379> SETEX mykey1 1000 "1"
OK
127.0.0.1:6379> SETEX mykey2 1000 "2"
OK
127.0.0.1:6379> SETEX mykey3 1000 "3"
OK
127.0.0.1:6379> info
# Keyspace
db0:keys=3,expires=3,avg_ttl=992766
127.0.0.1:6379> SETEX mykey4 1 "4"
OK
127.0.0.1:6379> SETEX mykey5 1 "5"
OK
127.0.0.1:6379> info
# Keyspace
db0:keys=3,expires=3,avg_ttl=969898
127.0.0.1:6379> keys *
1) "mykey2"
2) "mykey3"
3) "mykey1"
127.0.0.1:6379> 

Като се има предвид, че във вашата ситуация питате за изтичане на ключа за подчинени, според https://github.com/antirez/redis/issues/2861:

ключовете на подчинен не са с изтекъл срок на валидност и по този начин avg_ttl никога не се изчислява

И според https://groups.google.com/forum/#!topic/redis-db/NFTpdmpOPnc:

avg_ttl никога не се инициализира на подчинен и по този начин може да бъде каквато винаги произволна стойност се намира в паметта на това място.

Следователно може да се очаква, че info командата се държи различно на подчинените.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Цикъл за в redis с асинхронни заявки на nodejs

  2. Как да инсталирате Redis

  3. DigitalOcean pod има необвързани незабавни PersistentVolumeClaims

  4. Redis е единична нишка. Тогава защо трябва да използвам маруля?

  5. Node.js, (Hi)Redis и командата multi