caching-strategy について
アプリケーションのパフォーマンス改善とバックエンド負荷の軽減を目指す開発者向けのキャッシュ戦略スキルです。キャッシュパターンや無効化戦略、複数の実装方法を案内します。
主な機能
- 01Node.js の Redis キャッシュ
- 02Python キャッシュデコレーター
- 03マルチレベルキャッシュ
- 04キャッシュ無効化戦略
- 05HTTP キャッシュヘッダー
活用シーン
- 01データベースクエリ負荷の軽減
- 02API 応答時間の改善
- 03高コストな計算結果のキャッシュ
- 04分散キャッシュの導入
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill caching-strategyインストール後、Claude Code で/caching-strategyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/cache-decorator-python.mdcache-invalidation-strategies.mdhttp-caching-headers.mdmulti-level-cache.mdredis-cache-implementation-nodejs.mdscripts/validate-api.shtemplates/api-scaffold.yaml詳細
キャッシュ戦略
目次
概要
効果的なキャッシュ戦略を実装して、アプリケーションのパフォーマンスを向上させ、レイテンシを削減し、バックエンドシステムの負荷を軽減します。
使用する場面
- データベースクエリの負荷を軽減する
- API の応答時間を改善する
- 高トラフィックの負荷に対応する
- コストの高い計算結果をキャッシュする
- セッションデータを保存する
- 静的アセットに CDN を統合する
- 分散キャッシュを実装する
- レート制限とスロットリングを実装する
クイックスタート
最小限の動作例:
import Redis from "ioredis";
interface CacheOptions {
ttl?: number; // Time to live in seconds
prefix?: string;
}
class CacheService {
private redis: Redis;
private defaultTTL = 3600; // 1 hour
constructor(redisUrl: string) {
this.redis = new Redis(redisUrl, {
retryStrategy: (times) => {
const delay = Math.min(times * 50, 2000);
return delay;
},
maxRetriesPerRequest: 3,
});
this.redis.on("connect", () => {
console.log("Redis connected");
});
this.redis.on("error", (error) => {
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装は references/ ディレクトリにあります:
| ガイド | 内容 |
|---|---|
| Redis キャッシュの実装(Node.js) | Redis キャッシュの実装(Node.js) |
| キャッシュデコレーター(Python) | キャッシュデコレーター(Python) |
| マルチレベルキャッシュ | マルチレベルキャッシュ |
| キャッシュ無効化戦略 | キャッシュ無効化戦略 |
| HTTP キャッシュヘッダー | HTTP キャッシュヘッダー |
ベストプラクティス
✅ 推奨事項
- 適切な TTL 値を設定する
- 重要なデータに対してキャッシュウォーミングを実装する
- 読み取りにはキャッシュアサイドパターンを使用する
- キャッシュヒット率を監視する
- キャッシュ障害時に適切に縮退する処理を実装する
- 大きなキャッシュ値には圧縮を使用する
- キャッシュキーを適切に名前空間で分ける
- キャッシュスタンピードを防止する仕組みを実装する
- 分散キャッシュには一貫性ハッシュを使用する
- キャッシュのメモリ使用量を監視する
❌ 避けるべき事項
- 無差別にすべてをキャッシュする
- データベース設計の不備をキャッシュで解決しようとする
- 暗号化せずに機密データを保存する
- キャッシュミスへの対処を忘れる
- 頻繁に変更されるデータに長すぎる TTL を設定する
- キャッシュ無効化戦略を無視する
- 監視せずにキャッシュを使用する
- 検討なしに大きなオブジェクトを保存する
コメント
Markdown 対応