mcpField
V
valkey

valkey

github.com/oakossデータ・データベース20131 回インストール10 週間前に更新
リポジトリ

valkey について

Valkeyの利用方法を扱うスキルです。ValkeyはLinux Foundationが管理するオープンソースのRedis互換インメモリデータストアで、一般的なデータパターンや運用、Redisからの移行を解説します。

主な機能

  1. 01キャッシュとセッション保存のパターン
  2. 02レート制限と分散ロック
  3. 03キュー、Pub/Sub、ストリーム
  4. 04ソート済みセットのランキングとカウンター
  5. 05永続化、デプロイ、移行の指針

活用シーン

  1. 01有効期限付きキャッシュアサイドの適用
  2. 02キューまたはPub/Subワークフローの構築
  3. 03セッション保存とレート制限
  4. 04RedisからValkeyへの移行計画

インストール

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

$npx skills add https://github.com/oakoss/agent-skills --skill valkey

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

同梱ファイル

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

references/
caching-patterns.md
common-patterns.md
data-structures.md
docker-and-deployment.md

詳細

Valkey

Linux Foundation が保守する、Redis 互換のオープンソースのインメモリデータストアです。Redis OSS 7.2.4(BSD 3-Clause ライセンス)からフォークされました。Redis OSS 2.x から 7.2.x までのドロップイン置換として使用でき、プロトコル、コマンド、データ形式は同じです。

使用する場面:キャッシュ、セッションストレージ、レート制限、Pub/Sub メッセージング、タスクキュー、リーダーボード、分散ロック、リアルタイムカウンター、またはサブミリ秒のキー・バリュー操作が必要なあらゆるワークロード。

使用しない場面:プライマリのリレーショナルデータストア、大きなオブジェクトストレージ(値が 512 MB を超える場合)、Lua スクリプトを使わずに複数キーにまたがる強整合性の ACID トランザクションが必要なワークロード。

クイックリファレンス

タスク方法ポイント
キャッシュアサイドGET -> ミス -> DB 読み取り -> SET key val EX ttl長めの TTL でも必ず設定する
セッションストレージHSET session:{id} field val + EXPIREリクエストごとにスライディング TTL を設定
レート制限INCR + EXPIRE(固定ウィンドウ)またはソートセット(スライディング)精度が必要な場合はソートセットを使用
分散ロックSET lock:{res} token NX PX 30000デッドロック防止のため、必ず有効期限を設定する
キュー(シンプル)LPUSH + BRPOPタイムアウト付きのブロッキングポップ
キュー(信頼性重視)Streams + XGROUP + XACK少なくとも 1 回の配信にはコンシューマーグループを使用
Pub/SubSUBSCRIBE / PUBLISH配信のみで、永続化されない
StreamsXADD + XREADGROUP永続化、再生可能、コンシューマーグループ対応
リーダーボードソートセット:ZADD / ZREVRANGEO(log N) の順位操作
ユニーク数PFADD + PFCOUNT(HyperLogLog)メモリ約 12 KB、誤差 0.81%
エビクションポリシーmaxmemory-policy allkeys-lru多くのワークロードで最適なデフォルト設定
Docker のセットアップvalkey/valkey:8.1-alpineヘルスチェック:valkey-cli ping
永続化AOF(appendonly yes)+ RDB スナップショット耐久性には AOF、バックアップには RDB を使用
クライアントライブラリioredis または iovalkey(公式フォーク)すべての Redis クライアントを変更なしで使用可能
Redis からの移行バイナリを入れ替え、データファイルはそのまま使用Redis 7.2 まで RDB/AOF 互換

よくある間違い

間違い正しい方法
本番環境で KEYS * を使用するイテレーションにはカーソル付きの SCAN を使用する
キャッシュキーに TTL を設定しない必ず TTL を設定する — 無制限な増加は OOM の原因になります
大きなキーに DEL を使い、サーバーをブロックする非同期削除には UNLINK を使用する
永続的なメッセージングに Pub/Sub を使用する永続化にはコンシューマーグループ付きの Streams を使用する
すべてのキーに同じ TTL を設定する(大量失効の集中)ジッターを加える:EX (base + random(0, spread))
本番環境で maxmemory を設定しないmaxmemory とエビクションポリシーを明示的に設定する
ロックに MULTI/EXEC を使用する分散ロックには SET ... NX PX を使用する
大きなバイナリデータを保存する(値が 1 MB を超える場合)参照を保存し、値は小さく保つ
Docker Compose でヘルスチェックを設定しないvalkey-cli ping ヘルスチェックを追加する
本番環境で requirepass を無視する必ず認証と ACL を設定する

委任

  • キャッシュパターンの調査とデータモデルのレビュー:Explore エージェントを使用します
  • Redis から Valkey への移行戦略の策定:Plan エージェントを使用します
  • テストを含むキャッシュレイヤー全体の実装:Task エージェントを使用します

docker スキルが利用可能な場合は、Compose のネットワーク設定とマルチステージビルドのパターンを委任してください。 performance-optimizer スキルが利用可能な場合は、アプリケーションレベルのキャッシュ戦略を委任してください。 database-security スキルが利用可能な場合は、ACL と TLS の設定レビューを委任してください。

参考資料

  • データ構造とコマンド -- 文字列、ハッシュ、リスト、セット、ソート済みセット、ストリーム、HyperLogLog、ビットマップ、地理空間
  • キャッシュパターン -- キャッシュアサイド、ライトスルー、TTL 戦略、エビクションポリシー、クライアント側キャッシュ、無効化
  • 一般的なパターン -- レート制限、分散ロック、キュー、セッションストレージ、Pub/Sub、ストリーム、リーダーボード
  • Docker とデプロイ -- Compose のセットアップ、永続化、レプリケーション、Sentinel、Cluster、セキュリティ、Redis からの移行

コメント