expires
chứa các khóa hiện có với TTL sẽ hết hạn, không bao gồm các khóa đã hết hạn. Ví dụ (bỏ qua thông tin bổ sung từ info
lệnh cho ngắn gọn):
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>
Giả sử trong tình huống của bạn, bạn đang hỏi về thời hạn sử dụng khóa trên nô lệ, theo https://github.com/antirez/redis/issues/2861:
các khóa trên máy nô lệ không chủ động hết hạn và do đó avg_ttl không bao giờ được tính
Và theo https://groups.google.com/forum/#!topic/redis-db/NFTpdmpOPnc:
avg_ttl không bao giờ được khởi tạo trên nô lệ và do đó nó có thể là giá trị tùy ý nằm trong bộ nhớ tại nơi đó.
Do đó, có thể mong đợi rằng info
lệnh hoạt động khác nhau trên nô lệ.