Redis thực hiện hết hạn khóa như thế nào? Từ here Tôi đã học được rằng Redis lưu trữ thời gian mà tại đó khóa sẽ hết hạn, nhưng chính xác như thế nào được thực hiện?Redis hết hạn khóa như thế nào?
Trả lời
Tóm lại - đối với mỗi đối tượng redis, có thời gian hết hạn. Trừ khi bạn đặt đối tượng hết hạn, thời gian đó là "không bao giờ".
Bây giờ, bản thân cơ chế hết hạn là bán lười. Sự hết hạn lười biếng có nghĩa là bạn không thực sự hết hạn các đối tượng cho đến khi chúng được đọc. Trong trường hợp này đọc một đối tượng, chúng ta kiểm tra dấu thời gian hết hạn của nó, và nếu nó trong quá khứ, chúng ta không trả về gì cả, và xóa đối tượng trong khi chúng ta đang ở đó. Nhưng vấn đề là nếu một chìa khóa không bao giờ chạm vào, nó chỉ chiếm bộ nhớ mà không có lý do gì.
Vì vậy, Redis thêm lớp thứ hai của hoạt động hết hạn ngẫu nhiên. Nó chỉ đọc các phím ngẫu nhiên tất cả các thời gian, và khi một khóa hết hạn được chạm vào nó sẽ bị xóa dựa trên cơ chế lười biếng. Điều này không ảnh hưởng đến hành vi hết hạn, nó chỉ thêm "bộ sưu tập rác" của các khóa đã hết hạn.
Tất nhiên việc triển khai thực tế phức tạp hơn điều này, nhưng đây là ý tưởng chính.
Bạn có thể đọc thêm về nó ở đây: http://redis.io/commands/expire
Và mã nguồn cho các chu kỳ hết hạn hoạt động có thể được tìm thấy ở đây: https://github.com/antirez/redis/blob/unstable/src/server.c#L781
- 1. Redis - Cách hết hạn khóa hàng ngày
- 2. phím redis tôi không hết hạn
- 3. làm thế nào để xử lý phiên hết hạn redis cơ sở?
- 4. Cách nhận lại cuộc gọi khi khóa hết hạn trong REDIS
- 5. Redis, hết hạn phiên và tra cứu ngược
- 6. Sự kiện trên khóa hết hạn
- 7. Nhận giá trị hết hạn với Jedis
- 8. Tìm ngày hết hạn của kho khóa Android
- 9. Android - Điều gì xảy ra khi khóa ký hết hạn?
- 10. Làm thế nào để "EXPIRE" phím con "HSET" trong redis?
- 11. Làm thế nào để viết testcase để kiểm tra những thứ như "30 ngày hết hạn"?
- 12. Phiên làm việc mã hiệu suất hết hạn được dọn dẹp như thế nào?
- 13. Ehcache cách xóa khóa khi phần tử hết hạn?
- 14. Redis hoạt động như thế nào khi RAM bắt đầu lấp đầy?
- 15. "Thời gian hết hạn semaphore đã hết hạn" SQL Azure
- 16. Làm cách nào để hết hạn khóa bộ đệm mẫu django khi nhận tín hiệu?
- 17. StackExchange Redis - StringSet vs SetAdd và đã hết giá
- 18. Rails cache hết hạn
- 19. TestFlight hết hạn
- 20. Redis được sử dụng như thế nào ở Trello?
- 21. Tôi nên lưu trữ JSON bằng redis như thế nào?
- 22. Khóa được cung cấp không hợp lệ. Khóa đã hết hạn hoặc thư đã bị xóa khỏi hàng đợi
- 23. hết hạn trang ASP.Net
- 24. Hết giờ hết hạn với SqlBulkCopy
- 25. META "hết hạn" thẻ
- 26. Ngày hết hạn cookie
- 27. Phiên Django hết hạn?
- 28. Ngày hết hạn JRE
- 29. Hết hạn phiênStorage
- 30. Đặt giới hạn hết hạn để readLine()?
tiêu đề và câu hỏi không phù hợp. bạn hỏi gì? Redis hết hạn khóa như thế nào? hoặc liệu có thể hết hạn các mục trong danh sách không? –
@Not_a_Golfer Tôi đã thay đổi tiêu đề, xin lỗi vì sự nhầm lẫn. –