@unikvs/redis.bun
Bun から Redis にバイト列を保存する @unikvs/redis.bun の使い方を説明します。
概要
@unikvs/redis.bun は Redis にバイト列を保存するストレージプラグインです。Bun 専用 複数ノードで共有するキャッシュや一時データの保存に使います。
nameは"Redis"で、isOpenで開閉状態を確認します。open()で接続し、使い終わったらclose()で切断します。- このストレージは、キーに既定で
"unikvs:"の接頭辞を付与し、clear()の削除範囲を限定します。 - 接続先 URL を省略した場合は、クライアントが環境変数(
REDIS_URL、VALKEY_URL)から解決します。
インストールは次のコマンドで行います。
npm install @unikvs/redis.bunpnpm add @unikvs/redis.bunyarn add @unikvs/redis.bunbun add @unikvs/redis.bunnub add @unikvs/redis.bunaube add @unikvs/redis.bun別途 Redis サーバーが必要です。
使い方
Redis は IStorage を実装しています。UniKvs には persist() で渡します。
import { Redis } from "@unikvs/redis.bun";
Redis
Redis に保存するストレージです。利用者は open() で開き、使い終わったら close() で閉じます。
コンストラクターの引数は次のとおりです。
プロパティ型
RedisStorageOptions
Bun の RedisOptions に本パッケージ固有の項目を加えた設定型です。Bun の項目はそのまま透過します。
プロパティ型
keyPrefix?string
すべてのキーに付与する接頭辞です。既定値は `"unikvs:"` です。空文字を指定するとキーをそのまま使います。
型
string以下は、値を保存して読み戻す例です。
import { Redis } from "@unikvs/redis.bun";
import * as unikvs from "unikvs";
const kvs = new unikvs.Builder<{ file: unikvs.Value<Uint8Array> }>()
.persist(new Redis("redis://127.0.0.1:6379"))
.build();
await kvs.open();
await kvs.set("file", new Uint8Array([0, 1, 2]));
const data = await kvs.get("file");
console.log(data); // Uint8Array(3) [0, 1, 2]
await kvs.close();
データ型
| 操作 | 対応するデータ型 |
|---|---|
write・read |
Uint8Array<ArrayBuffer> |
getWritable・getReadable のチャンク |
Uint8Array<ArrayBuffer> |
write・readにはバイト列 (Uint8Array<ArrayBuffer>) を使います。- ストリームの読み書きに対応し、チャンクは
Uint8Array<ArrayBuffer>です。 - 書き込みストリームは一時キーへ追記し、完了時にリネームで原子的に置き換えます。
- 読み取りストリームは取得したバイト列を単一のチャンクとして送出します。
エラー
このパッケージ固有のエラーはありません。存在しないキーの読み取りは @unikvs/core の共通エラー KeyNotFoundError を投げ、Bun 以外のランタイムで開こうとすると共通エラー UnsupportedRuntimeError を投げます。