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)および有効期限付きキャッシュをサポートするメモリキャッシュ
- エラー復旧とオフライン対応により障害に強い構造
- 同期関数および非同期関数に対する
Wrap/ メモ化をサポート - 機能を拡張できるHooksおよびイベント処理をサポート
- TTL(有効期限)設定をミリ秒単位で簡単に適用 (1分 = 60000ms, 1時間 = 3600000ms, 1日 = 86400000ms)
- ノンブロッキング(non-blocking)なレイヤー2キャッシュ操作をサポート
- Pub/Subベースの分散キャッシュ同期 (近日公開予定)
- 包括的なテストとコードカバレッジ
- ESMおよびCommonJSをサポートし、Typescriptと互換
1件のコメント
要するに、パッケージ内部で
primaryとsecondaryにレイヤーを分けて、Keyv に保存する方式ですね。古典的な意味でのレイヤー 1 / レイヤー 2 キャッシュを期待していた方は、戻るボタンを押したほうがよいです。