v1.7.0-beta.5
Pre-release1.7.0-beta.5 (2026-06-30)
This release tightens the storage and hook layers ahead of the 1.7.0 stable cut.
The most important fix addresses a regression introduced in v1.6.2: expiring a cache entry by flag was silently stripping its flag memberships, leaving it orphaned and unreachable by subsequent flag-based clears until its TTL naturally elapsed. Flag membership is now preserved correctly on expiry.
On the hooks side, all cache-invalidation actions are now named consistently under the millicache_cache_cleared_by_<target> pattern — millicache_cache_cleared_by_urls is new, and millicache_cleared_by_networks has been renamed to millicache_cache_cleared_by_networks. This is a breaking change for any code listening on the old name. Entry deletion and expiry hooks (millicache_entry_deleting, millicache_entry_deleted, and the new millicache_entry_expired) now carry the entry URL and canonical flags (e.g. 2:post:123) as additional arguments, giving edge/CDN integrations a complete signal directly from the storage layer. Flag-to-key resolution when clearing by sets is also now batched into a single pipeline, reducing Redis round-trips proportionally to flag fan-out.
Finally, Storage gains a generic key/value surface (get, get_multiple, set, delete, delete_by_pattern) so Pro drop-ins such as an object-cache driver can reuse MilliCache's existing Redis connection and fail-fast logic without opening a second one.
Features
- hooks: standardize cache-cleared action names (1dedb37)
- plugin: Add author information and plugin URI to advanced cache file (ef97d53)
- storage: add generic key/value surface for reuse by drop-ins (a1d195c)
- storage: emit URL + canonical flags from entry deletion/expiry hooks (d2445b1)
Bug Fixes
- storage: preserve flag membership when expiring a cache entry (7c83b33)
Performance
- storage: batch flag-to-key resolution when clearing by sets (1ee0b65)
Performance Results
Loading 7.8x faster with MilliCache!
| Metric | Without Cache | With MilliCache | Improvement |
|---|---|---|---|
| Server Response (TTFB) | 52ms | 7ms | 87% faster |
| Page Load (LCP) | 108ms | 64ms | 41% faster |
Server Response is the primary metric for page caching. It measures how fast the server delivers the HTML. MilliCache focuses on serving cached pages instantly, eliminating database queries and PHP processing.
Page Load includes frontend rendering time, which depends on themes, scripts, and assets. Content optimization is outside MilliCache's current scope.
Technical Details
Cache Efficiency
- Database queries: 27 → 0 (100% reduction)
- Response time range: 6ms-71ms (cached) vs 50ms-61ms (uncached)
Cache Generation (First Request)
- Total processing: 52.92ms
- Before template: 25.25ms
- Template rendering: 27.67ms
Test Configuration
- Iterations: 50 (3 warm-up runs discarded)
- Outliers removed: 7
- Timestamp: 2026-06-30T20:06:59.320Z
- Commit: afbaa6d
Regression Analysis
- Status: PASS
- Performance stable: 7.81x -> 7.78x (-0.4%)
- Threshold: 10% slowdown triggers failure