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
командата се държи различно на подчинените.