Cacheable - Keyv 기반 Node.js용 캐싱 패키지
(github.com/jaredwray)다양한 프로젝트에서 사용가능한 캐싱 솔루션 패키지
- cacheable : 차세대 캐싱 프레임워크. 레이어 1 / 레이어 2 캐싱을 처음부터 설계하여 구축. 분산 캐싱 및 확장성에 강점
- cache-manager : NestJS와 같은 서비스에서 사용되며, wrap 등 강력한 기능 제공. 다양한 애플리케이션에서 널리 사용
- cacheable-request : 네이티브 HTTP 요청에 캐시 기능 추가. RFC 준수 캐시 지원. 네트워크 요청에 캐시를 쉽게 적용 가능
- flat-cache : 파일 저장소 지속성을 가진 빠른 메모리 캐싱. 메모리에 빠르게 접근하면서도 파일에 캐시 데이터 저장 가능
- file-entry-cache : 파일 메타데이터에 대한 경량 캐시. 특정 파일 세트를 처리하는 프로세스에 적합, 마지막 실행 이후 변경된 파일만 재처리
- @cacheable/node-cache : node-cache 대체 패키지
Cacheable
- 분산 캐싱에 중점을 둔 고성능 레이어 1 / 레이어 2 캐싱 엔진
- CacheSync와 같은 엔터프라이즈 기능 지원 예정
- Keyv 저장 엔진을 기반으로 하여 견고한 성능 제공
- 간단한 API로 데이터를 캐시하고 검색하는 기능
- 주요 특징
- 간단하고 직관적인 API 제공
- 불필요한 모듈 없이 가벼운 구조
- Keyv로 신뢰할 수 있는 확장 가능한 저장 엔진 사용
- LRU(Least Recently Used) 및 만료 캐시를 지원하는 Memory Caching
- 오류 복구 및 오프라인 지원을 통해 장애에 강한 구조
- 동기 및 비동기 함수에 대한 Wrap / Memoization 지원
- 기능을 확장할 수 있는 Hooks 및 이벤트 처리 지원
- TTL(시간 제한) 설정을 밀리초 단위로 간단하게 적용 (1분 = 60000ms, 1시간 = 3600000ms, 1일 = 86400000ms)
- 비차단(non-blocking) 레이어 2 캐싱 연산 지원
- Pub/Sub 기반의 분산 캐싱 동기화 (곧 출시 예정)
- 종합적인 테스트 및 코드 커버리지
- ESM 및 CommonJS 지원, Typescript와 호환