大量のエントリをヒープ上に保持しながらGC負荷を抑える、Go向けの高速な並行処理対応・自動削除型インメモリキャッシュ。
isaacs/node-lru-cache
設定した件数、サイズ、TTLの上限に達すると、最も長く使われていない項目を削除するJavaScript製LRUキャッシュです。
- スター
- 5,918
- フォーク
- 380
- 未解決の Issue
- 15
- 最終コミット
- 先月
これは何?
lru-cacheは、最近アクセスされた項目を指定した件数だけ保持し、新しい項目によって上限を超えたときに、最も長く使われていない項目を削除するJavaScriptのキャッシュオブジェクトです。Node.jsとWebブラウザーで動作し、npmからインストールできます。
基本的なLRU削除に加えて、サイズ計算関数によるストレージ総量の上限設定、エントリーごとまたはキャッシュ全体に対するTTL有効期限、項目の削除時にクリーンアップを行うdisposeコールバック、stale-while-revalidate方式に対応した非同期fetchメソッドをサポートします。文字列以外のキーはオブジェクトの同一性に基づいて扱われます。このライブラリは主にLRUキャッシュであり、設定しない限り期限切れの項目を積極的に削除することはありません。
このパッケージにはTypeScriptの型定義、対応プラットフォームでのdiagnostics channelによる計測機能、シンプルな代替手段とのトレードオフを比較したパフォーマンスの解説が含まれています。
主な機能
- 01最大件数を超えると、最も長く使われていないエントリーを削除します。
- 02独自のサイズ計算によって、ストレージ総量の上限を設定できます。
- 03キャッシュ全体または個別のエントリーに対するTTL有効期限を任意で設定できます。
- 04削除された項目をクリーンアップするためのdisposeコールバックを提供します。
- 05stale-while-revalidateに対応した非同期fetchメソッドを備えています。
- 06TypeScriptの型定義が含まれています。
ユースケース
- Node.jsサービスで、計算コストの高い処理やAPI呼び出しの結果をキャッシュする。
- エントリーの合計サイズに上限を設け、プロセス内キャッシュのメモリ使用量を制限する。
- メモリ使用量に上限を設けて、ブラウザーアプリで取得データをキャッシュする。
クイックスタート
- 1
npmでパッケージをインストールする
npm install lru-cache --save - 2
LRUCacheをインポートし、最大サイズを指定してキャッシュを作成する
使う前に知っておきたいこと
- 主にTTLキャッシュとして設計されているわけではなく、デフォルトでは期限切れのアイテムは事前に削除されません。
- set操作は一部の代替手段よりやや遅く、READMEでは必要な場合を除き、dispose、サイズ追跡、TTL機能を避けるよう推奨されています。
トピック
よくある質問
- node-lru-cache とは?
- 設定した件数、サイズ、TTLの上限に達すると、最も長く使われていない項目を削除するJavaScript製LRUキャッシュです。 lru-cacheは、最近アクセスされた項目を指定した件数だけ保持し、新しい項目によって上限を超えたときに、最も長く使われていない項目を削除するJavaScriptのキャッシュオブジェクトです。Node.jsとWebブラウザーで動作し、npmからインストールできます。
- node-lru-cache は無料で使えますか?ライセンスは?
- node-lru-cache は BlueOak-1.0.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- node-lru-cache は今もメンテナンスされていますか?
- 半年以内に更新あり。node-lru-cache の最終コミットは 2026年9月18日 です。
- node-lru-cache は何に使えますか?
- Node.jsサービスで、計算コストの高い処理やAPI呼び出しの結果をキャッシュする。 エントリーの合計サイズに上限を設け、プロセス内キャッシュのメモリ使用量を制限する。 メモリ使用量に上限を設けて、ブラウザーアプリで取得データをキャッシュする。
- node-lru-cache のインストール方法は?
- npmでパッケージをインストールする: npm install lru-cache --save LRUCacheをインポートし、最大サイズを指定してキャッシュを作成する
- node-lru-cache はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/isaacs/node-lru-cache
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
React、Vue、Svelte、Solid向けのバインディングを備えた、Webアプリ用の非同期状態管理・データ取得ライブラリ。
キャッシュ、データ構造サーバー、ドキュメントストア、ベクトルデータベース、メッセージブローカーとして使えるインメモリデータストア。
キャッシュ、画像処理、プログレッシブデコード、SwiftUI/UIKitコンポーネントを備えたAppleプラットフォーム向けSwift画像読み込みシステム。
HAProxyは、TCPおよびHTTPアプリケーション向けの高速なフリーのリバースプロキシ兼ロードバランサーで、高可用性とトラフィック分散を実現します。
標準ライブラリを拡張する230以上のユーティリティを備えた、依存関係のない純粋なPythonライブラリ。