12P by xguru 14일전 | favorite | 댓글 1개

다양한 프로젝트에서 사용가능한 캐싱 솔루션 패키지

  • 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와 호환

그냥 패키지 내부에서 primary, secondary로 레이어 나눈 뒤에 keyv에다가 저장하는식이네요
고전적 의미의 레이어 1 / 레이어 2 캐싱을 기대하셨던 분은 뒤로가기 누르시면 됩니다.