mcpField
R
render-keyvalue

render-keyvalue

github.com/render-ossクラウド・DevOps90359 回インストール今日更新
リポジトリ

render-keyvalue について

Valkey 8 を基盤とし、Redis クライアントと互換性のある Render Key Value の設定スキルです。接続 URL、メモリポリシー、Blueprint のアクセス制御、永続化を説明します。

主な機能

  1. 01Redis クライアント互換の Valkey 8
  2. 02内部・外部接続 URL
  3. 03キャッシュとキュー向けメモリポリシー
  4. 04Blueprint のアクセス制御設定
  5. 05データ永続化の案内

活用シーン

  1. 01共有アプリケーションキャッシュの追加
  2. 02ユーザーセッションの保存
  3. 03バックグラウンドジョブキューの設定
  4. 04接続や認証エラーの調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/render-oss/skills --skill render-keyvalue

インストール後、Claude Code で/render-keyvalueを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
compute-plans.md
connection-examples.md
private-networking.md
troubleshooting.md

詳細

Render Key Value

Render Key Value は、Valkey 8 を実行する、低レイテンシで Redis 互換のインメモリストレージを提供します。共有キャッシュ、セッションストア、ジョブキューのバックエンドとして使用できます。ほぼすべての Redis クライアントライブラリと互換性があります。

使用する場面

  • Web アプリにキャッシュやセッションストアを追加する場合
  • Celery、Sidekiq、BullMQ、Asynq、Oban 用のジョブキューバックエンドを接続する場合
  • 適切なmaxmemory ポリシー(キャッシュ用とキュー用)を選ぶ場合
  • Blueprint で ipAllowList(必須フィールド)を設定する場合
  • 内部 URL と外部 URL のどちらを使って接続するかを判断する場合
  • 認証の失敗や接続拒否エラーをトラブルシューティングする場合

バックグラウンドワーカーの設定とキューフレームワークのパターンについては、render-background-workers を参照してください。Blueprint の作成については、render-blueprints を参照してください。

内部 Key Value 接続を設定またはトラブルシューティングする前に、references/private-networking.md をお読みください。

主要な概念

Valkey 8(Redis ではありません)

新しいインスタンスでは、オープンソースの Redis フォークである Valkey 8 が実行されます。Redis のドロップイン置換として利用でき、既存の Redis クライアントライブラリを変更せずに使用できます。レガシーインスタンス(2025 年 2 月より前に作成されたもの)では Redis 6 が実行されます。

接続 URL

各インスタンスには 2 つの URL があります。

URL の種類使用する場面認証が必要
内部(redis://red-xxx:6379)同じワークスペースとリージョンにある Render サービスから接続する場合いいえ(デフォルト)
外部(rediss://red-xxx:6379)Render の外部(ローカル開発、CI)から接続する場合常に必要

本番サービスでは常に内部 URL を優先してください。レイテンシが低く、TLS のオーバーヘッドがなく、プライベートネットワーク経由で通信できます。

外部接続はデフォルトで無効です。ダッシュボードのアクセス制御リストに IP 範囲を追加すると有効になります。

内部認証

デフォルトでは、内部接続に認証は必要ありません。コンプライアンス対応やセキュリティ強化のために、ダッシュボードで内部接続に認証を必須にできます。この設定により、内部 URL に認証情報が含まれるようになります。

redis://default:PASSWORD@red-xxx:6379

警告: 内部認証を有効にすると、既存の認証なしの接続が機能しなくなります。先にクライアントを認証付き URL に移行してください。

Maxmemory ポリシー

重要な決定事項です。 ユースケースに応じて選択してください。

ユースケースポリシー理由
キャッシュ(データを失ってもよい)allkeys-lru使用頻度が最も低いキーを削除して空き領域を確保します
ジョブキュー(データを失えない)noevictionメモリがいっぱいの場合、書き込み時にエラーを返します。キーは削除されません
セッションストアallkeys-lru または volatile-lruセッションは再生成できるため、LRU は安全です

利用できるすべてのポリシー:

ポリシー動作メモリがいっぱいになるか
allkeys-lruLRU に基づいて任意のキーを削除しますいいえ
noevictionメモリがいっぱいの場合、書き込み時にエラーを返しますはい
volatile-lruLRU に基づいて TTL 付きキーを削除しますはい
volatile-lfuLFU に基づいて TTL 付きキーを削除しますはい
allkeys-lfuLFU に基づいて任意のキーを削除しますいいえ
volatile-randomTTL 付きキーをランダムに削除しますはい
allkeys-random任意のキーをランダムに削除しますいいえ
volatile-ttl有効期限が最も近いキーを削除しますはい

Blueprint の設定

services:
  - type: keyvalue
    name: cache
    plan: starter
    region: oregon
    maxmemoryPolicy: allkeys-lru
    ipAllowList: []
ipAllowList は必須です

Blueprint では、Key Value サービスに ipAllowList を必ず含める必要があります。一般的な設定パターン:

値意味
[]外部アクセスなし(内部のみ。ほとんどのアプリに推奨)
[{source: "0.0.0.0/0", description: "everywhere"}]外部アクセスを開放(必要な場合に限って使用)
[{source: "203.0.113.0/24", description: "office"}]特定の IP 範囲
サービスへの接続

type: keyvalue と property: connectionString を指定した fromService を使用します。

envVars:
  - key: REDIS_URL
    fromService:
      name: cache
      type: keyvalue
      property: connectionString

Key Value で利用できる fromService プロパティ:

プロパティ値
connectionString内部 URL 全体(redis://red-xxx:6379)
hostホスト名のみ
portポートのみ(通常は 6379)

データの永続化

  • 有料インスタンス: ディスクに書き込まれ、appendfsync everysec が設定されています。中断時に、最大1秒分の書き込みが失われる可能性があります。
  • 無料インスタンス: ディスクへの永続化はありません。再起動またはアップグレード時にデータが失われます。
  • 無料プランからのアップグレード: 無料インスタンスにはディスクがないため、アップグレード時にすべてのデータが失われます。

コンピュートプランと変更

コンピュートプランによって、利用可能なメモリと接続数の上限が決まります。現在のプラン ID と Key Value 固有の変更に関するガイダンスについては、references/compute-plans.md を参照してください。

接続例

Node.js(ioredis、node-redis)、Python(redis-py)、Ruby(redis-rb、Sidekiq)、Go のクライアントコードについては、references/connection-examples.md を参照してください。

よくある間違い

間違い修正方法
Blueprint に ipAllowList がない内部アクセスのみにするには ipAllowList: [] を追加します
ジョブキューに allkeys-lru を使用するnoeviction に切り替えます。LRU によるエビクションでは、キューに入っているジョブが削除されます
Render サービスから外部 URL で接続するレイテンシを抑え、認証を不要にするには内部 URL を使用します
fromService に type: keyvalue を指定し忘れるtype は必須です。指定しないと接続設定に失敗します
非推奨の redis 型エイリアスを使用する新しい Blueprint では keyvalue を推奨します(redis も引き続き動作しますが、非推奨です)

参考資料

ドキュメント内容
references/compute-plans.md現在のプラン ID、仕様、利用可能状況、Key Value プランの変更
references/private-networking.md現在のプライベートネットワークの範囲、内部アドレス指定、分離、トラブルシューティング
references/connection-examples.mdNode.js、Python、Ruby、Go のクライアントコード
references/troubleshooting.md認証エラー、接続拒否、メモリ不足、Redis 6 からの移行

関連スキル

  • render-background-workers — Celery、Sidekiq、BullMQ を使ったキューコンシューマーのセットアップ
  • render-blueprints — render.yaml の完全なスキーマ、fromService のパターン
  • render-networking — プライベートネットワーク、内部 URL
  • render-env-vars — REDIS_URL およびその他の接続変数の接続設定

現在のドキュメントの取得

このスキルで Render の最新ドキュメントを参照するよう指示された場合は、必ず次の手順に従ってください。

  1. 利用可能な URL 取得ツールまたは curl などの HTTP クライアントを使って、リンク先の Markdown ドキュメントを直接取得します。ウェブ検索の要約でドキュメントを代用しないでください。
  2. 取得に成功し、想定したドキュメントが返されたことを確認してから、内容を読みます。ファイルを保存したり、そのパスを表示したりするだけでは不十分です。
  3. リクエストに失敗した場合、またはツールで Markdown のレスポンスを読み取れない場合は、リンク先の HTML 版を開いて読みます。
  4. どちらの形式も取得できない場合は、最新の参照資料を利用できないことを明示し、スキルにトピック固有の代替手順があればそれに従います。安定した制約についてのみ同梱のガイダンスを使用し、変更される可能性のあるプラットフォームの詳細を推測しないでください。

複数の参照資料が必要な場合は、それぞれにこの手順を適用し、確認できたドキュメントと利用できないままのドキュメントを区別してください。

コメント