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

chìa khóa redis của tôi không hết hạn

Vì bạn đang thực hiện '...' nên thật khó để nói chắc chắn, nhưng tôi muốn nói rằng bạn đang đặt mykey trong phần đó, điều này sẽ giúp loại bỏ hết hạn một cách hiệu quả.

Từ hướng dẫn EXPIRE

Thời gian chờ chỉ bị xóa khi xóa khóa bằng lệnh DEL hoặc được ghi đè bằng lệnh SET hoặc GETSET

Ngoài ra, liên quan đến -1 câu trả lời từ TTL

Giá trị trả lại

Trả lời số nguyên:TTL tính bằng giây hoặc -1 khi phím không xuất hiện notexist hoặc không có thời gian chờ.

CHỈNH SỬA:Lưu ý rằng hành vi này đã thay đổi trong Redis 2.8

Bắt đầu với Redis 2.8, giá trị trả về trong trường hợp lỗi đã thay đổi:
Lệnh trả về -2 nếu khóa không tồn tại.
Lệnh trả về -1 nếu khóa tồn tại nhưng không có liên quan hết hạn.
P>

Nói cách khác, nếu khóa của bạn tồn tại, nó có vẻ sẽ tồn tại lâu dài, tức là chưa đặt bất kỳ thời hạn nào.

CHỈNH SỬA:Có vẻ như tôi có thể tái tạo điều này nếu tôi tạo khóa trên máy chủ nô lệ REDIS, máy chủ nô lệ sẽ không xóa khóa mà không có đầu vào chính, vì thông thường bạn sẽ không tạo khóa cục bộ trên máy chủ nô lệ. Đây có phải là trường hợp ở đây không?

Tuy nhiên, trong khi các nô lệ được kết nối với chủ sẽ không hết hạn khóa một cách phụ thuộc (mà sẽ đợi DEL đến từ chủ), chúng sẽ vẫn sử dụng trạng thái hết hạn đầy đủ hiện có trong tập hợp dữ liệu, vì vậy khi nô lệ được chọn làm chủ thì nó sẽ có thể khai thác các khóa một cách độc lập, hoàn toàn hoạt động như một khóa chính.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chiến lược tốt nhất để đồng bộ dữ liệu Redis với MySQL là gì?

  2. Chuyển từ SQLite sang Redis

  3. Cần tây / Làm lại cùng một tác vụ được thực hiện song song nhiều lần

  4. Làm cách nào để tôi có thể duyệt / xem các giá trị được lưu trữ trong Redis

  5. Django Redis Lỗi không xác định lệnh 'BZPOPMIN'