iazaran / smart-cache
Smart Cache is a caching optimization package designed to enhance the way your Laravel application handles data caching. It intelligently manages large data sets by compressing, chunking, or applying other optimization strategies to keep your application performant and efficient.
Requires
- php: ^8.1
- illuminate/cache: >=8.0
- illuminate/console: >=8.0
- illuminate/contracts: >=8.0
- illuminate/support: >=8.0
This package is auto-updated.
Last update: 2025-06-04 13:31:29 UTC
README
Laravel SmartCache is a powerful caching optimization package designed to enhance the way your Laravel application handles data caching. It intelligently manages large data sets by compressing, chunking, or applying other optimization strategies to keep your application performant and efficient.
Perfect for Laravel developers looking to optimize cache performance, reduce memory usage, and improve application speed with intelligent data compression and cache management.
๐ Features
- ๐ Auto-detects large cache payloads - Automatically identifies when optimization is needed
- ๐ฆ Compresses data before caching - Reduces storage requirements with gzip compression
- ๐งฉ Chunks large arrays or objects into manageable parts for better performance
- ๐ง Intelligent serialization - Advanced data serialization techniques
- โป๏ธ Seamless retrieval and reconstruction - Transparent data recovery
- โ๏ธ Extensible strategy pattern for custom optimizations
- ๐ก๏ธ Optional fallback for incompatible drivers
- ๐ Laravel-style helper function support
- ๐ฏ Redis and file cache driver optimization
- ๐ Performance monitoring and cache statistics
๐ฆ Installation
Install the package via Composer:
composer require iazaran/smart-cache
Requirements: Laravel 8+ is supported. Tested with Redis and file cache drivers.
โ๏ธ Configuration
After installation, publish the config file:
php artisan vendor:publish --tag=smart-cache-config
The config file allows you to define thresholds, compression strategies, chunk sizes, and enabled features.
๐งช Usage
Basic Usage with SmartCache Facade
Use SmartCache
just like Laravel's Cache
facade:
use SmartCache\Facades\SmartCache; // Store large data with automatic optimization SmartCache::put('user_data', $largeUserArray, now()->addMinutes(10)); // Retrieve data seamlessly $userData = SmartCache::get('user_data');
Helper Function Usage
Or use the global helper function, similar to Laravel's cache()
helper:
// Get a value $value = smart_cache('cache_key'); // Get with default value $value = smart_cache('cache_key', 'default_value'); // Store a value with automatic optimization smart_cache(['large_dataset' => $bigArray], now()->addMinutes(10)); // Access the SmartCache instance $cache = smart_cache();
Dependency Injection
Or inject it into your services:
public function __construct(\SmartCache\Contracts\SmartCache $cache) { $this->cache = $cache; }
๐ง Optimization Strategies
SmartCache includes several cache optimization strategies out of the box:
- Compression: Uses gzip or other compression drivers to reduce cache size
- Chunking: Splits large data structures into manageable chunks
- Encoding: Serializes data safely for different cache drivers
- Driver-Aware: Avoids incompatible features based on your cache driver
These strategies can be customized or extended by implementing SmartCache\Contracts\OptimizationStrategy
.
๐ Example: Large Dataset Caching
// Example: Caching large API response data $apiData = range(1, 10000); // Large dataset $complexObject = [ 'users' => $userCollection, 'metadata' => $metadataArray, 'statistics' => $statsData ]; // SmartCache automatically optimizes storage SmartCache::put('api_response', $complexObject, 600); // Behind the scenes: // - Checks data size automatically // - Compresses or chunks as needed // - Stores optimization metadata for retrieval // - Ensures fast reconstruction // Retrieve optimized data $retrievedData = SmartCache::get('api_response'); // Or with helper function smart_cache(['api_response' => $complexObject], 600);
๐งฐ Artisan Commands
SmartCache provides helpful Artisan commands for cache management:
# Clear SmartCache data php artisan smart-cache:clear # Check cache status and statistics php artisan smart-cache:status
๐ฏ Use Cases
- Large API response caching - Optimize storage of external API data
- Database query result caching - Cache complex query results efficiently
- Session data optimization - Reduce session storage requirements
- File-based cache optimization - Improve file cache performance
- Redis memory optimization - Reduce Redis memory usage
- High-traffic applications - Improve performance under load
๐ Performance Benefits
- Up to 70% reduction in cache storage size
- Faster cache retrieval for large datasets
- Reduced memory usage in Redis and other drivers
- Improved application response times
- Better resource utilization
๐ง Supported Cache Drivers
- โ Redis - Full feature support with compression and chunking
- โ File Cache - Optimized file-based caching
- โ Database - Database cache driver optimization
- โ Array - In-memory cache optimization
- โ ๏ธ Memcached - Basic support (limited chunking)
๐ค Contributing
We welcome contributions! Please see our Contributing Guide for details on:
- Reporting bugs
- Suggesting features
- Submitting pull requests
- Code style guidelines
๐ License
Laravel SmartCache is open-sourced software licensed under the MIT license.
๐ Links
- GitHub Repository: https://github.com/iazaran/smart-cache
- Packagist Package: https://packagist.org/packages/iazaran/smart-cache
- Documentation: https://iazaran.github.io/smart-cache/
Built with โค๏ธ for developers who care about Laravel performance optimization and efficient caching strategies.
Keywords: Laravel caching, PHP cache optimization, Redis optimization, cache compression, Laravel performance, data chunking, cache management, Laravel package