mcpField
Q
query-caching-strategies

query-caching-strategies

github.com/aj-geddesデータ・データベース373461 回インストール34 週間前に更新
リポジトリ

query-caching-strategies について

Redis、Memcached、データベースレベルのキャッシュを使ったクエリキャッシュ設計のスキルです。キャッシュ無効化、TTL、キャッシュウォーミングを扱い、データベース負荷や応答時間の低減に役立ちます。

主な機能

  1. 01Redis と Memcached のキャッシュ
  2. 02データベースレベルのクエリキャッシュ
  3. 03キャッシュ無効化パターン
  4. 04TTL 戦略
  5. 05キャッシュウォーミング

活用シーン

  1. 01頻繁なクエリ結果のキャッシュ
  2. 02読み取り負荷の高いシステムでのDB負荷軽減
  3. 03応答時間の改善
  4. 04分散キャッシュ方式の選定

インストール

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

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill query-caching-strategies

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

同梱ファイル

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

references/
event-based-invalidation.md
memcached-caching.md
mysql-query-cache.md
postgresql-query-cache.md
redis-caching-with-postgresql.md
time-based-invalidation.md
scripts/
validate-schema.sh
templates/
migration-template.sql

詳細

クエリキャッシュ戦略

目次

概要

Redis、Memcached、データベースレベルのキャッシュを使用した多層キャッシュ戦略を実装します。キャッシュの無効化、TTL 戦略、キャッシュウォーミングのパターンを扱います。

使用する場面

  • クエリ結果のキャッシュ
  • 読み取り負荷の高いワークロードの最適化
  • データベース負荷の軽減
  • 応答時間の改善
  • キャッシュレイヤーの選定
  • キャッシュ無効化のパターン
  • 分散キャッシュのセットアップ

クイックスタート

最小限の動作例:

// Node.js example with Redis
const redis = require("redis");
const client = redis.createClient({
  host: "localhost",
  port: 6379,
  db: 0,
});

// Get user with caching
async function getUser(userId) {
  const cacheKey = `user:${userId}`;

  // Check cache
  const cached = await client.get(cacheKey);
  if (cached) return JSON.parse(cached);

  // Query database
  const user = await db.query("SELECT * FROM users WHERE id = $1", [userId]);

  // Cache result (TTL: 1 hour)
  await client.setex(cacheKey, 3600, JSON.stringify(user));
  return user;
}

// Cache warming on startup
// ... (see reference guides for full implementation)

リファレンスガイド

references/ ディレクトリにある詳細な実装:

ガイド内容
PostgreSQL での Redis キャッシュPostgreSQL での Redis キャッシュ
Memcached キャッシュMemcached キャッシュ
PostgreSQL クエリキャッシュPostgreSQL クエリキャッシュ
MySQL クエリキャッシュMySQL クエリキャッシュ
イベントベースの無効化イベントベースの無効化
時間ベースの無効化時間ベースの無効化、LRU キャッシュの削除

ベストプラクティス

✅ 推奨事項
  • 確立されたパターンや規約に従います
  • クリーンで保守しやすいコードを書きます
  • 適切なドキュメントを追加します
  • デプロイ前に十分にテストします
❌ 避けるべきこと
  • テストや検証を省略する
  • エラー処理を無視する
  • 設定値をハードコードする

コメント