expires
obsahuje existující klíče s TTL, jejichž platnost vyprší, nezahrnuje již prošlé klíče. Příklad ( s vynecháním dalších informací z info
příkaz pro stručnost ):
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>
Vzhledem k tomu, že ve vaší situaci se ptáte na vypršení platnosti klíče u otroků, na https://github.com/antirez/redis/issues/2861:
klíče na podřízeném zařízení aktivně nevypršely, a proto se avg_ttl nikdy nevypočítá
A podle https://groups.google.com/forum/#!topic/redis-db/NFTpdmpOPnc:
avg_ttl se nikdy neinicializuje na podřízeném zařízení, a proto to může být jakákoli libovolná hodnota, která se na daném místě nachází v paměti.
Dá se tedy očekávat, že info
příkaz se na podřízených chová jinak.