Redis is powerful for caching. Here are effective caching strategies.
Cache-Aside Pattern
async function getUser(id) {
// Check cache
let user = await redis.get(`user:${id}`);
if (user) {
return JSON.parse(user);
}
// Cache miss - fetch from DB
user = await db.query('SELECT * FROM users WHERE id = ?', [id]);
// Store in cache
await redis.setex(`user:${id}`, 3600, JSON.stringify(user));
return user;
}
Write-Through Pattern
async function updateUser(id, data) {
// Update database
const user = await db.update('users', id, data);
// Update cache
await redis.setex(`user:${id}`, 3600, JSON.stringify(user));
return user;
}
Cache Invalidation
async function deleteUser(id) {
// Delete from database
await db.delete('users', id);
// Invalidate cache
await redis.del(`user:${id}`);
}
Best Practices
- Set appropriate TTL
- Handle cache misses
- Invalidate properly
- Monitor cache hit rate
- Use consistent key patterns
Conclusion
Implement effective Redis caching strategies! ๐ด