このプロジェクトについて
Node-RedisはNode.js向けの公式Redisクライアントで、`npm install redis`でインストールします。アンブレラパッケージにはRedis Stackモジュールのサポートが同梱されており、モジュール化されたパッケージも個別に公開されています:`@redis/client`(ベースクライアントとクラスタ)、`@redis/bloom`、`@redis/json`、`@redis/search`、`@redis/time-series`、およびMicrosoft Entra IDトークン認証用の`@redis/entraid`。
クライアントは`createClient()`で作成し、`redis://`および`rediss://`接続URL、個別パラメータ、UNIXソケット、TLSをサポートします。`isReady`と`isOpen`で接続状態を公開します。クライアントはEventEmitterであり、`connect`、`ready`、`end`、`error`、`reconnecting`、`terminated`、`invalidate`、シャードチャネルイベントを発行します。プロセス終了を避けるために`error`リスナーが必要です。
APIはすべての組み込みRedisコマンドをカバーしており、生の名前(`HSET`)とcamelCaseエイリアス(`hSet`)の両方で公開され、コマンド修飾子はJavaScriptオブジェクトとして渡され、応答はネイティブ構造に変換されます(例えばハッシュはオブジェクトになります)。バイナリデータは、RESP blob文字列を`Buffer`にマッピングする`withTypeMapping`を通じてサポートされます。未知のコマンドは`sendCommand()`で送信できます。
その他の文書化された機能は以下のとおりです:
- `multi()`/`exec()`によるトランザクションと`watch()`による楽観的ロック。
- シャードチャネルを含むPub/Sub。
- `MATCH`、`COUNT`、`TYPE`オプションを備えた`SCAN`、`HSCAN`、`SSCAN`、`ZSCAN`用の非同期イテレータ。
- 同じイベントループティックで発行されたコマンドの自動パイプライン化。
- ブロッキングコマンドに有用な、分離された接続のプールのためのv5の`RedisClientPool`。
- 設定可能なTTL、エントリ制限、LRU/FIFO退避を備えたRESP3上のサーバー支援クライアントサイドキャッシュ。
- Redis ClusterおよびSentinelデプロイメント専用のガイド。
- Redis 8.4で導入された比較および設定/削除(CAS/CAD)操作と、オプションの`@node-rs/xxhash`ピア依存関係を必要とするローカルXXH3 `digest`ヘルパー。
- `OpenTelemetry.init()`(`@opentelemetry/api`と設定済みSDKが必要)によるOpenTelemetryメトリクス計装、およびAPM統合用のNode.js `diagnostics_channel`を通じて公開されるテレメトリ。
- Luaスクリプトと関数のプログラマビリティサポート。
READMEにはESMおよびCommonJSの例、クライアント設定の詳細、v3からv4およびv4からv5への移行ガイドが記載されています。注目すべきv5 APIの変更には、`quit()`に代わる`close()`と`disconnect()`に代わる`destroy()`が含まれます。リポジトリはMITライセンスです。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.