2010-06-23 25 views
9

Memcached nói rằng nó sử dụng một hàng đợi LRU để loại bỏ (với một vài quy tắc dựa trên kích thước sàn trộn lẫn.) Khi họ nói ít được sử dụng gần đây nhất, họ đề cập đến gần đây nhất được lưu trữ hoặc ít nhất gần đây đọc? Tài liệu của họ có vẻ mơ hồ ở đây.LRU của Memcached có nghĩa là gì?

Trả lời

16

Ở mọi nơi tôi đã thấy thuật ngữ được sử dụng, LRU đã gọi đến lần truy cập cuối cùng (đọc hoặc viết) thay vì cửa hàng cuối cùng.

This article khẳng định nó:

Thuật toán LRU đảm bảo rằng các đối tượng đó được lấy ra là một trong đó là hoặc không còn được sử dụng tích cực hoặc đã được sử dụng từ rất lâu rằng đó là dữ liệu là tiềm năng đã lỗi thời hoặc ít giá trị .

Nó tiếp tục nói về các mục đang được sử dụng "" - điều này cho tôi mạnh mẽ ngụ ý rằng truy cập thay vì lưu trữ ... bạn sẽ không nói về điều gì đó "tích cực được lưu trữ" trừ khi bạn ' nửa chừng thực sự viết nó.

+1

+1: Được sử dụng = Đọc hoặc viết –

+0

Thuật toán LRU có xóa các mục nhập không được sử dụng trong một khoảng thời gian hoặc các mục đã hết hạn không? Các mục nhập hết hạn sẽ không bị xóa vào thời điểm chính xác đó nhưng khi lần tiếp theo ai đó cố gắng truy cập nó (AFAIR). Vì vậy, thuật toán LRU (cũng) sẽ hết hạn cho các khóa? – zaphod1984

+0

@ zaphod1984: Điều đó hoàn toàn phụ thuộc vào việc triển khai. Nếu bạn đang hỏi về memcached đặc biệt, tôi không biết. –