sql >> Database >  >> NoSQL >> Redis

Aantal verlopen sleutels vermeld door info-opdracht op redis-slave komt niet overeen met wat ik zie

expires bevat bestaande sleutels met TTL die zullen verlopen, exclusief reeds verlopen sleutels.Voorbeeld (met weglating van extra informatie uit info commando voor beknoptheid):

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> 

Gezien het feit dat u in uw situatie vraagt ​​naar het verlopen van de sleutel op slaves, per https://github.com/antirez/redis/issues/2861:

sleutels op een slave zijn niet actief verlopen, en dus wordt de avg_ttl nooit berekend

En volgens https://groups.google.com/forum/#!topic/redis-db/NFTpdmpOPnc:

avg_ttl wordt nooit geïnitialiseerd op een slaaf en dus kan het zijn welke willekeurige waarde zich op die plaats in het geheugen bevindt.

Het is dus te verwachten dat de info commando gedraagt ​​zich anders bij slaves.



  1. Gegeven een lijst met id's, wat is de beste manier om op te vragen welke id's niet in de verzameling voorkomen?

  2. Selderij taak altijd IN AFWACHTING

  3. Een beheerdersgebied creëren in vijf minuten met AdminBro, express, mongoDB, mongoose

  4. Hoe aggregeren in mongodb te gebruiken voor $match _id