Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Số lượng khóa hết hạn được liệt kê theo lệnh thông tin trên redis slave không nhất quán với những gì tôi thấy

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ệ.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Thay đổi quyền tệp mặc định trên kết xuất redis

  2. Công nghệ này có thể ngăn xếp quy mô không?

  3. Làm việc với các phím trong redis

  4. StackExchange.Redis - Cách sử dụng LockTake / LockRelease

  5. Làm cách nào tôi có thể đọc từ Redis bên trong một khối MULTI trong Ruby?