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降低读密集系统的数据库负载
  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 缓存淘汰

最佳实践

✅ 应该做
  • 遵循既定的模式和约定
  • 编写整洁、易于维护的代码
  • 添加适当的文档
  • 部署前充分测试
❌ 不应该做
  • 跳过测试或验证
  • 忽略错误处理
  • 将配置值硬编码

评论

支持 Markdown