SKILL.md
Query Caching Strategies
Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
Overview
Implement multi-level caching strategies using Redis, Memcached, and database-level caching. Covers cache invalidation, TTL strategies, and cache warming patterns.
When to Use
- Query result caching
- High-read workload optimization
- Reducing database load
- Improving response time
- Cache layer selection
- Cache invalidation patterns
- Distributed cache setup
Quick Start
Minimal working example:
// 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)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| [Redis Caching with PostgreSQL](references/redis-caching-with-postgresql.md) | Redis Caching with PostgreSQL |
| [Memcached Caching](references/memcached-caching.md) | Memcached Caching |
| [PostgreSQL Query Cache](references/postgresql-query-cache.md) | PostgreSQL Query Cache |
| [MySQL Query Cache](references/mysql-query-cache.md) | MySQL Query Cache |
| [Event-Based Invalidation](references/event-based-invalidation.md) | Event-Based Invalidation |
| [Time-Based Invalidation](references/time-based-invalidation.md) | Time-Based Invalidation, LRU Cache Eviction |
Best Practices
✅ DO
- Follow established patterns and conventions
- Write clean, maintainable code
- Add appropriate documentation
- Test thoroughly before deploying
❌ DON'T
- Skip testing or validation
- Ignore error handling
- Hard-code configuration values