install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/noartem/skills/laravel-performance-caching" ~/.claude/skills/comeonoliver-skillshub-laravel-performance-caching && rm -rf "$T"
manifest:
skills/noartem/skills/laravel-performance-caching/SKILL.mdsource content
Caching Basics
Framework caches
php artisan route:cache php artisan config:cache php artisan view:cache
Clear with the corresponding
clear commands when needed in deployments.
Values and queries
Cache::remember("post:{$id}", 600, fn () => Post::findOrFail($id));
- Choose TTLs based on freshness requirements
- Invalidate explicitly on writes when correctness matters
Patterns and Strategies
// Stable keys and scopes (e.g., tenant, locale) Cache::remember("tenant:{$tenantId}:users:index:page:1", now()->addMinutes(5), function () { return User::with('team')->paginate(50); }); // Tags (supported drivers) for grouped invalidation Cache::tags(['users'])->remember('users.index.page.1', now()->addMinutes(5), fn () => ...); Cache::tags(['users'])->flush(); // Locks to ensure exclusive expensive work Cache::lock('reports:daily', 30)->block(5, function () { generateReports(); });
- Use stable, namespaced keys; include any scoping dimension
- Prefer
to prevent thundering herdsremember() - Use cache tags (if supported) to invalidate related entries together
- Avoid caching highly dynamic or user-specific data without a plan
- Document invalidation triggers next to cached code