2012-07-13 39 views
10

Với bộ nhớ đệm Guava được tạo bằng mã bên dưới là có kích thước bộ nhớ cache tối đa nếu bộ nhớ cache không được đặt?Kích thước tối đa mặc định cho bộ nhớ cache Google Guava là gì?

LoadingCache<String, String> loadingCache = CacheBuilder.newBuilder().build(new CacheLoader<String, String>() { 
    @Override 
    public String load(String key) throws Exception 
    { 
     return key.toUpperCase(); 
    } 
}); 

Trong trường hợp của tôi, tôi thực sự muốn có bộ nhớ cache không có giới hạn trên. Tôi đang sử dụng bộ nhớ cache để lưu trữ quyền cho người dùng đã đăng nhập và sẽ loại bỏ các mục khỏi bộ nhớ cache khi người dùng đăng xuất hoặc hết hạn phiên.

Trả lời

22

Bộ nhớ cache mặc định là vô biên: là javadoc for CacheBuilder giải thích

Những tính năng này tất cả các tùy chọn

By trường hợp bộ nhớ cache mặc định được tạo ra bởi CacheBuilder sẽ không thực hiện bất kỳ loại của việc trục xuất.

+0

Lời cảm ơn tuyệt vời cho liên kết, tôi vừa phát hiện ra về ổi ngày hôm qua và đã có rất nhiều tab đang mở trong trình duyệt của tôi đang cố gắng gò nó. – ams

+0

Họ có xóa phần liên quan đến giá trị 'maximumSize' mặc định không? Tôi không thể xác định bất kỳ đề cập nào về nó trong các javadocs mới hơn, ví dụ: http://google.github.io/guava/releases/23.6-jre/api/docs/com/google/common/cache/CacheBuilder.html – Henrik

+0

@Henrik chưa bao giờ là phần trên giá trị 'maximumSize' mặc định: là ngụ ý bởi "Các tính năng này là tất cả tùy chọn", và rõ ràng hơn với "Theo mặc định các thể hiện cache được tạo bởi' CacheBuilder' sẽ không thực hiện bất kỳ loại bỏ nào ", có _no_ giá trị mặc định, do đó không bị đuổi. –

3

Câu trả lời đơn giản không có giới hạn, nếu "mặc định" trung bình của bạn là CacheBuilder.maximumSize() không bao giờ được gọi.

Và tôi không nghĩ rằng ứng dụng của bạn cần chiến lược gỡ bỏ dựa trên kích thước. Khi phiên người dùng hết hạn, chỉ cần xóa nó khỏi bộ nhớ cache (Cache.invalidate(key)).

Và trường hợp chuỗi trên không cần bộ nhớ cache, gọi trực tiếp trường hợp trực tiếp dễ dàng hơn và hiệu quả hơn bộ nhớ cache.

Các vấn đề liên quan