Cacheable - Gói caching cho Node.js dựa trên Keyv
(github.com/jaredwray)Gói giải pháp caching có thể dùng trong nhiều dự án khác nhau
- cacheable: framework caching thế hệ mới. Được thiết kế và xây dựng từ đầu cho caching layer 1 / layer 2. Có thế mạnh về caching phân tán và khả năng mở rộng
- cache-manager: được sử dụng trong các dịch vụ như NestJS, cung cấp các tính năng mạnh mẽ như wrap. Được dùng rộng rãi trong nhiều ứng dụng khác nhau
- cacheable-request: thêm tính năng cache vào các HTTP request native. Hỗ trợ cache tuân thủ RFC. Có thể áp dụng cache cho network request một cách dễ dàng
- flat-cache: cache bộ nhớ nhanh với khả năng lưu bền trên file storage. Vừa truy cập nhanh trong bộ nhớ, vừa có thể lưu dữ liệu cache vào file
- file-entry-cache: cache nhẹ cho metadata của file. Phù hợp với các tiến trình xử lý một tập file cụ thể, chỉ xử lý lại các file đã thay đổi kể từ lần chạy trước
- @cacheable/node-cache: gói thay thế cho node-cache
Cacheable
- Công cụ caching layer 1 / layer 2 hiệu năng cao, tập trung vào caching phân tán
- Dự kiến hỗ trợ các tính năng doanh nghiệp như CacheSync
- Cung cấp hiệu năng vững chắc dựa trên storage engine Keyv
- API đơn giản để cache và truy xuất dữ liệu
- Các đặc điểm chính
- Cung cấp API đơn giản và trực quan
- Cấu trúc gọn nhẹ, không có module thừa
- Sử dụng storage engine đáng tin cậy và có khả năng mở rộng với Keyv
- Hỗ trợ Memory Caching với LRU(Least Recently Used) và cache hết hạn
- Cấu trúc có khả năng chống lỗi nhờ phục hồi lỗi và hỗ trợ offline
- Hỗ trợ Wrap / Memoization cho các hàm đồng bộ và bất đồng bộ
- Hỗ trợ Hooks và xử lý sự kiện để mở rộng tính năng
- Có thể áp dụng thiết lập TTL (giới hạn thời gian) theo đơn vị mili giây một cách đơn giản (1 phút = 60000ms, 1 giờ = 3600000ms, 1 ngày = 86400000ms)
- Hỗ trợ các thao tác caching layer 2 non-blocking
- Đồng bộ caching phân tán dựa trên Pub/Sub (sắp ra mắt)
- Kiểm thử toàn diện và độ bao phủ mã đầy đủ
- Hỗ trợ ESM và CommonJS, tương thích với Typescript
1 bình luận
Có vẻ chỉ là chia thành các lớp primary và secondary ngay bên trong package rồi lưu vào Keyv theo kiểu đó thôi.
Ai đang kỳ vọng kiểu cache layer 1 / layer 2 theo nghĩa cổ điển thì hãy bấm quay lại.