プロジェクトに Redis キャッシュを追加する
Google Memorystore にプライベートな Redis キャッシュ(S〜XL、高可用性と TLS は任意)を作成し、コンソールや AI ツールから REDIS_URL としてプロジェクトに接続します。
いちばん早い方法:デプロイに作成させる#
コードが REDIS_URL(または他の Redis 接続変数)を読み、プロジェクトにまだその値がない場合、AI ツールからのデプロイやコンソールでのアップロードで、ビルド開始前にサイズ S・通常版のキャッシュが作成され、接続されます。作成には 5 分ほどかかります。作成される場合とされない場合は コードが必要とするデータベースとキャッシュ をご覧ください。
提供されるもの#
Google Memorystore 上の専用 Redis 7.2 インスタンスで、台湾(asia-east1)にあり、1 つの環境に属します。
| 設定 | 選択肢 |
|---|---|
| メモリ | S 1 GiB、M 2 GiB、L 4 GiB、XL 8 GiB。後から増やせますが、減らせません。 |
| 可用性 | 通常版、または引き継ぎ用のレプリカを持つ 高可用性版。作成後は変更できません。 |
| TLS 暗号化 | 既定はオフ。作成後は変更できません。TLS を使う場合、プロジェクトには CA 証明書も必要です。 |
| 削除ポリシー | メモリがいっぱいのときの動作:noeviction、allkeys-lru、allkeys-lfu、allkeys-random、volatile-lru、volatile-lfu、volatile-random、volatile-ttl。変更できます。 |
- プライベート。キャッシュにはプライベートアドレスしかありません。接続したプロジェクトだけが、常にオンの AUTH パスワードを使って届きます。自分のコンピューターからは接続できません。AI ツールからは
caches_commandで 1 つずつコマンドを実行できます。 - プランの上限。Free にはキャッシュがありません。Pro は 5 個、Team は 20 個、Business は契約によります。4 つのサイズはすべて選べます。
- 料金。キャッシュの料金はまだ公開されていません。コンソールには見積もりが表示されず、
caches_optionsも料金を返しません。高可用性版は通常版より高くなります。
キャッシュを作成する#
- キャッシュ を開き、キャッシュを作成 を選びます。
- 名前 を入力します。小文字の英字・数字・ハイフンで、英字で始め、63 文字までです。
- メモリ、可用性、TLS 暗号化、削除ポリシー を選びます。セッションや失いたくないデータには
noeviction、純粋なキャッシュにはallkeys-lruを使います。 - 確定します。5 分ほどで使えるようになります。
Agent Lab に sessions という名前の Redis キャッシュを作って。サイズ S、通常版、TLS なし、削除ポリシーは noeviction。アシスタントは caches_create を呼び出してプレビューを見せ、同意した後に作成します。
プロジェクトに接続する#
接続すると、接続情報がプロジェクトのシークレットに書き込まれ、プロジェクトがキャッシュのネットワークを通れるようになります。パスワードは誰にも表示されません。
- キャッシュを開き、プロジェクトの接続 で プロジェクトを接続 を選びます。
- プロジェクトと変数名を選び、ENV の変更を確認 を選びます。置き換わる変数があれば表示されます。
- 確定します。新しい値を読み込ませるため、設定後にプロジェクトを再起動 はオンのままにします。
orders-api プロジェクトを sessions キャッシュに REDIS_URL として接続して。アシスタントは caches_binding_preview を呼び出し、その token を付けて caches_binding_connect を呼び出します。names で各変数と接続情報の部分を対応させます。
{ "REDIS_URL": "url", "REDIS_CA": "ca" }部分は url、host、port、password、ca です。TLS を使うキャッシュには ca が必要です。
url は redis://:<password>@<プライベートアドレス>:6379/0 の形です。TLS の場合は rediss:// で始まり、Memorystore が TLS 用に使うポート 6378 になります。ほとんどのクライアントはそのまま使えます。TLS の場合は CA 証明書もクライアントに渡します。
import { createClient } from "redis";
const redis = createClient({
url: process.env.REDIS_URL,
socket: process.env.REDIS_CA ? { tls: true, ca: process.env.REDIS_CA } : undefined,
});
await redis.connect();プロジェクトを接続できるのは、キャッシュが 利用可能 になってからです。接続を解除 するとプロジェクトのアクセスがなくなり、ネットワークのアクセスが取り消された後に認証情報も削除されます。
キャッシュを変更・削除する#
- 管理 で、または
caches_updateで、名前の変更、メモリの増量、削除ポリシーの変更 ができます。TLS と可用性は変更できないので、新しいキャッシュを作成してください。 - キャッシュを削除 するとすべてのキーが完全に削除されます。プロジェクトの接続は先に取り消されます。
- キャッシュの モニタリング には、メモリ、接続、コマンド、ヒット率、削除されたキーが表示されます。削除されたキーが 1 つでもあれば、キャッシュがいっぱいです。サイズを大きくすると改善します。
AI ツールから使う場合、caches_update と caches_delete には caches_get で取得した現在の generation が必要です。caches_command は許可リストにある Redis コマンドを 1 つ実行します。読み取りはすぐに、書き込みは確認後に実行されます。AUTH、CONFIG、EVAL、FLUSH、KEYS は拒否されます。MCP ツール › Redis(キャッシュ)をご覧ください。