# Caching in Laravel

> Articles on caching in Laravel with Redis: full-page response caching, cache hit rates, large entries, predis vs phpredis, and compression.

Source: https://boring-observability.dev/blog/topic/caching
Section: Caching — the Skyline blog
Updated: 2026-09-27

---

These posts come from running `spatie/laravel-responsecache` in front of a busy site, with Redis as the store.

One half of the problem is storage: a whole rendered page is a large Redis value, and predis, phpredis and the compression options behave differently at that size. The other half is the hit rate, which stays low for reasons that have nothing to do with Redis, like click ids in the URL giving every visitor their own cache key.


## Posts

### [Full-Page Caching in Laravel: Large Redis Entries, predis vs phpredis, and Compression](https://boring-observability.dev/blog/laravel-full-page-cache-redis-compression.md)

Published 2026-09-27. A full-page cache stores every rendered page whole, and ours reached 25MB in Redis. How predis and phpredis differ with values that size, sizes and timings for lzf, lz4 and zstd, the counter gotcha on a compressed connection, and a serializer that compresses on predis.

### [Why Our Laravel Response Cache Kept Missing: Click IDs, Cache Keys and a Cached noindex](https://boring-observability.dev/blog/laravel-responsecache-hit-rate.md)

Published 2026-09-26. Pages behind a one-hour response cache kept rendering from scratch. The causes: click ids like srsltid and gbraid splitting the cache per visitor, a list cache whose keys never matched, a clear() that flushed the whole store, and an ad visitor's noindex page served to Googlebot.
