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
コマンドはスレーブで異なる動作をします。