Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Die Anzahl der ablaufenden Schlüssel, die vom Info-Befehl auf dem Redis-Slave aufgelistet werden, stimmt nicht mit dem überein, was ich sehe

expires enthält vorhandene Schlüssel mit TTL, die ablaufen, ohne bereits abgelaufene Schlüssel.Beispiel (mit Weglassen zusätzlicher Informationen aus info Befehl der Kürze halber ):

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> 

Angesichts der Tatsache, dass Sie in Ihrer Situation nach dem Ablauf von Schlüsseln auf Slaves fragen, per https://github.com/antirez/redis/issues/2861:

Schlüssel auf einem Slave sind nicht aktiv abgelaufen, und daher wird avg_ttl nie berechnet

Und gemäß https://groups.google.com/forum/#!topic/redis-db/NFTpdmpOPnc:

avg_ttl wird niemals auf einem Slave initialisiert und kann daher jeder beliebige Wert sein, der sich an dieser Stelle im Speicher befindet.

Es ist also zu erwarten, dass die info Befehl verhält sich auf Slaves anders.