Theo mặc định, bạn đặt bộ nhớ cache sang một bên, việc sử dụng bộ nhớ cache của chúng tôi trong ứng dụng khởi động Spring trông giống như sau
@Cacheable(cacheNames = "someCache")
public String cacheThis(String id){
return "this Is it";
}
Trong hầu hết các trường hợp trong ứng dụng khởi động mùa xuân, chúng tôi lưu vào bộ nhớ cache kết quả của JPA hoặc các truy vấn DB khác. Trong những trường hợp như vậy, chúng tôi thêm Cacheable
trên phương thức truy vấn, cung cấp cho chúng tôi tính năng sang một bên trong bộ nhớ cache.
Một ứng dụng có thể mô phỏng chức năng của bộ nhớ đệm đọc qua bằng cách thực hiện chiến lược bỏ qua bộ nhớ cache. Chiến lược này tải dữ liệu vào bộ nhớ cache theo yêu cầu.
Tham khảo:https://docs.microsoft.com/en-us/azure/architecture/patterns/cache-aside
Sử dụng mẫu sang một bên bộ nhớ cache không phải lúc nào cũng là giải pháp cho một vấn đề, tùy thuộc vào trường hợp sử dụng của bạn, bạn có thể phải thay đổi chiến lược bộ nhớ đệm. Việc thay đổi chiến lược bộ nhớ đệm không diễn ra ngay lập tức ngoại trừ một số chú thích mà chúng tôi biết từ Spring framework như
- Có thể lưu vào bộ nhớ cache
- CacheEvict
- CachePut
Bạn cần cập nhật mã ứng dụng của mình để sử dụng các chiến lược bộ nhớ đệm khác, mặc dù bạn có thể xây dựng bất kỳ chiến lược bộ nhớ đệm nào bằng cách sử dụng các chú thích này. Nếu bạn không thích sử dụng các chú thích này thì hãy chơi với đối tượng bộ đệm thực tế, bất kỳ lúc nào bạn có thể gọi các phương thức Cache để sửa đổi bộ đệm.
ví dụ:
Cache myCache = cacheManager.getCache("myCache");
Sau khi có đối tượng bộ đệm, bạn có thể gọi tất cả các phương thức có liên quan, một số phương thức có thể không hoạt động như mong đợi do giới hạn của bộ đệm bên dưới.