sql >> Databáze >  >> NoSQL >> Redis

Počet klíčů, kterým končí platnost, uvedených v příkazu info na redis slave není v souladu s tím, co vidím

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.



  1. redis timeout s predis

  2. Hosting ScaleGrid pro Redis™ na vašem vlastním účtu AWS

  3. Jak vyhledám objekt podle jeho ObjectId v mongo konzoli?

  4. Jak používat MongoDB Stitch v aplikacích pro Android