关于 query-caching-strategies
介绍使用 Redis、Memcached 和数据库级缓存设计查询缓存的技能,涵盖缓存失效、TTL 与缓存预热,适用于需要降低数据库负载或响应时间的场景。
主要功能
- 01Redis 与 Memcached 缓存
- 02数据库级查询缓存
- 03缓存失效模式
- 04TTL 策略
- 05缓存预热
适用场景
- 01缓存频繁查询结果
- 02降低读密集系统的数据库负载
- 03改善响应时间
- 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.mdmemcached-caching.mdmysql-query-cache.mdpostgresql-query-cache.mdredis-caching-with-postgresql.mdtime-based-invalidation.mdscripts/validate-schema.shtemplates/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 缓存淘汰 |
最佳实践
✅ 应该做
- 遵循既定的模式和约定
- 编写整洁、易于维护的代码
- 添加适当的文档
- 部署前充分测试
❌ 不应该做
- 跳过测试或验证
- 忽略错误处理
- 将配置值硬编码
评论
支持 Markdown