ホームページ >ウェブフロントエンド >jsチュートリアル >keyv-upstash の紹介: サーバーレス Redis 用のシームレスな Key-Value ストレージ

keyv-upstash の紹介: サーバーレス Redis 用のシームレスな Key-Value ストレージ

Barbara Streisand
Barbara Streisandオリジナル
2024-12-26 14:45:10452ブラウズ

Introducing keyv-upstash: Seamless Key-Value Storage for Serverless Redis

Github: https://github.com/mahdavipanah/keyv-upstash

keyv-upstash は、サーバーレス Redis プラットフォームである Upstash Redis に接続する Keyv 用のストレージ アダプターです。このアダプターを使用すると、サーバーレス アプリケーションでのキーと値のストレージのための、シンプル、効率的、柔軟なソリューションが得られます。

キーヴって何ですか?

Keyv は、アダプターを通じて複数のバックエンドをサポートする多用途のキー/値ストレージ ライブラリです。それは以下を提供します:

  • TTL ベースの有効期限: キャッシュまたは永続ストレージに最適です。

  • 名前空間のサポート: 共有環境でのキーの衝突を回避します。

  • 拡張性: カスタム モジュールの構築や圧縮などの機能の追加が簡単です。

Keyv は、Redis、SQLite、MongoDB などの多くのアダプターで動作し、現在では Upstash Redis 用の keyv-upstash も動作します。


なぜ keyv-upstash なのか?

keyv-upstash は、Upstash Redis と統合することで Keyv の機能を拡張し、以下を提供します。

  1. サーバーレス互換性: Upstash Redis は接続を管理せずに動作し、自動的にスケーリングするため、サーバーレス アプリに最適です。

  2. 柔軟性: Keyv のエコシステムと互換性があり、サードパーティの拡張機能をサポートします。

  3. キャッシュの階層化: Cacheable と組み合わせて多層キャッシュを実現します。

  4. ベンダー ロックインなし:serverless-redis-http と完全な互換性があるため、独自のサーバーレス Redis をセットアップして、このアダプターを使用できます。


はじめる

次の手順に従って keyv-upstash を統合します。

1. Keyv と keyv-upstash をインストールします

Keyv と Upstash アダプターをインストールします:

npm install keyv keyv-upstash

オプション: 階層化キャッシュ用に Cacheable をインストールします:

npm install cacheable

2. keyv-upstash のセットアップ

Upstash で Redis データベースが作成されていることを確認してください。プロジェクトで keyv-upstash を使用する方法は次のとおりです:

基本的な使い方

import Keyv from 'keyv';
import { KeyvUpstash } from 'keyv-upstash';

const keyv = new Keyv({
  store: new KeyvUpstash({
    url: 'your-upstash-redis-url',
    token: 'your-upstash-redis-token',
  }),
});

// Set a key-value pair
await keyv.set('foo', 'bar');

// Retrieve the value
const value = await keyv.get('foo');
console.log(value); // 'bar'

ネームスペースの使用

名前空間はキーの衝突を防ぎ、スコープ指定されたクリアを可能にします:

const keyv = new Keyv({
  store: new KeyvUpstash({
    url: 'your-upstash-redis-url',
    token: 'your-upstash-redis-token',
    namespace: 'my-namespace',
  }),
});

await keyv.set('foo', 'bar'); // Stored as 'my-namespace::foo'

Cacheable によるキャッシュ階層化

keyv-upstash と Cacheable を組み合わせて多層キャッシュを実現します。

import { Cacheable } from 'cacheable';

const redisStore = new KeyvUpstash({
  url: 'your-upstash-redis-url',
  token: 'your-upstash-redis-token',
});

const cache = new Cacheable({
  primary: new Map(), // Fast in-memory caching
  secondary: redisStore, // Persistent Redis caching
});

await cache.set('foo', 'bar', { ttl: 1000 }); // Stores in both layers
const value = await cache.get('foo'); // Fast lookup from memory or Redis
console.log(value); // 'bar'

高度な機能

バッチ操作

setMany と getMany を使用してパフォーマンスを向上させます:

await keyv.setMany([
  { key: 'key1', value: 'value1' },
  { key: 'key2', value: 'value2' },
]);

const values = await keyv.getMany(['key1', 'key2']);
console.log(values); // ['value1', 'value2']

カスタム構成

defaultTtl、keyPrefixSeparator、clearBatchSize などのオプションを使用してセットアップをカスタマイズします。

以上がkeyv-upstash の紹介: サーバーレス Redis 用のシームレスな Key-Value ストレージの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。