ストレージ比較
保存先の対応データ型と実行環境と永続性を比較します。
保存先の選択に迷った場合は、この表で対応データ型と実行環境を比較してください。導入手順はインストールを参照してください。
選び方
- テストや一時的な保存にはメモリーを使います。
- ブラウザーでは OPFS や IndexedDB を優先し、文字列だけなら Local Storage を使います。
- Node.js では Node.js ファイルシステム、Bun では Bun ファイルシステム を使います。
- 外部サービスを使う場合は、運用環境に合わせて S3、Redis、Valkey、Memcached、etcd、Cloudflare、Vercel の各保存先を選びます。
- 一時的な失敗に備える場合は リトライ でラップし、削除を残したい場合は 論理削除 でラップします。
対応表
| 保存先 | 対応データ型 | ストリーム | 実行環境 |
|---|---|---|---|
| メモリー | 任意の値 | 対応。チャンクは Uint8Array です。 |
制限なし。 |
| Null | 保存しません | 書き込みのみ受け付けます。読み取りは常に失敗します。 | 制限なし。 |
| LRU キャッシュ | 任意の値 | 対応。チャンクは Uint8Array です。 |
制限なし。 |
| HTTP | Uint8Array |
対応。 | 制限なし。接続先サーバーが必要です。 |
| OPFS | Uint8Array |
対応。 | ブラウザーとワーカー専用です。 |
| IndexedDB | 任意の値 | 対応。 | ブラウザー専用です。 |
| Local Storage | 文字列 | 非対応です。 | ブラウザー専用です。 |
| Session Storage | 文字列 | 非対応です。 | ブラウザー専用です。 |
| Cache Storage | Response |
対応。 | ブラウザーとワーカー専用です。 |
| Cookie | 文字列または Uint8Array |
非対応です。 | ブラウザー専用です。 |
| Node.js ファイルシステム | Uint8Array |
対応。 | Node.js 専用です。 |
| Bun ファイルシステム | Uint8Array |
対応。 | Bun 専用です。 |
| S3 Node.js | Uint8Array |
対応。 | Node.js で使います。外部サービスが必要です。 |
| S3 Bun | Uint8Array |
対応。 | Bun 専用です。外部サービスが必要です。 |
| Redis Node.js | Uint8Array |
対応。 | Node.js で使います。外部サービスが必要です。 |
| Redis Bun | Uint8Array |
対応。 | Bun 専用です。外部サービスが必要です。 |
| Valkey | Uint8Array |
対応。 | Node.js で使います。外部サービスが必要です。 |
| Memcached | Uint8Array |
非対応です。 | 制限なし。外部サーバーが必要です。 |
| etcd | Uint8Array |
対応。 | 制限なし。外部サーバーが必要です。 |
| Cloudflare Cache | Uint8Array |
対応。 | Cloudflare Workers 専用です。 |
| Cloudflare KV | Uint8Array |
非対応です。 | Cloudflare Workers 専用です。 |
| Cloudflare R2 | Uint8Array |
対応。 | Cloudflare Workers 専用です。 |
| Vercel Blob | Uint8Array |
対応。書き込み時に結合します。 | 制限なし。トークンが必要です。 |
| Vercel ランタイムキャッシュ | 任意の値 | 対応。 | Vercel 実行環境を想定します。 |
| リトライ | ラップ先に依存します | ラップ先に依存します。 | 制限なし。 |
| 論理削除 | ラップ先に依存します | ラップ先に依存します。 | 制限なし。 |