---
title: "ストレージ比較"
description: "保存先の選択に使うストレージ比較表と選択指針を説明します。"
---

## 比較表 [#comparison]

| 項目 | `@unikvs/memory` | `@unikvs/fs.node` | `@unikvs/fs.bun` | `@unikvs/redis.bun` | `@unikvs/s3.node` | `@unikvs/s3.bun` | `@unikvs/opfs` | `@unikvs/indexeddb` |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 環境 | すべて | Node.js | Bun | Bun | Node.js | Bun | ブラウザー | ブラウザー |
| 永続性 | なし。 | あり。 | あり。 | あり。 | あり。 | あり。 | あり。 | あり。 |
| 対応データ | 任意の値。 | バイト列。 | バイト列。 | バイト列。 | バイト列。 | バイト列。 | バイト列。 | 任意の値。 |
| ストリーム | 制限あり。 | 対応します。 | 対応します。 | 対応します。 | 対応します。 | 対応します。 | 対応します。 | 制約を確認します。 |
| 主な用途 | テスト・一時保持。 | 単一サーバー保存。 | 単一サーバー保存。 | 共有・キャッシュ。 | 共有・大容量保存。 | 共有・大容量保存。 | ブラウザー大容量保存。 | ブラウザー構造化保存。 |

各ストレージの詳細はパッケージリファレンスを参照してください。`@unikvs/writeonly` は保存先ではなく、既存のストレージを読み出し不可にするラッパーのため比較表には含めていません。

## 選択指針 [#guide]

**テスト・一時保持**

メモリーを使います。最も単純で、すべての環境で動作します。

**単一サーバー**

ファイルを使います。設定が少なく、小規模から中規模に適しています。

**共有・大容量**

S3 互換ストレージを使います。マルチパート転送に対応します。

**ブラウザー**

バイト列を大量に扱うなら OPFS、文字列やオブジェクトなど構造化データなら IndexedDB を使います。

## 組み合わせ例 [#combinations]

**メモリー + ファイル**

高速読み取りと永続化を両立します。

**ファイル + S3**

単一サーバーの応答性と共有保存の冗長性を両立します。

**IndexedDB + OPFS**

ブラウザーで構造化データとバイナリーデータの保存先を分けます。

**本命 + 書き込み専用アーカイブ**

読み出し用のストレージと、読み出せないバックアップを併用します。

:::tip
設計方法は複数ストレージのガイドを参照してください。読み取り優先度は登録順のため、高速な保存先を先に登録します。
:::

## 環境別の注意 [#environments]

:::warning
Node.js 専用はブラウザーで使えず、ブラウザー専用は Node.js で使えません。コードを共有する場合は、環境別にクライアントを組み立てます。
:::

- 永続化を伴うストレージは、容量・権限・ネットワークの考慮が必要です。詳細は各パッケージリファレンスを参照してください。
