Using Laravel 4’s Illuminate Cache as a Standalone – FileSystem, APC and Redis (with authentication)

This is more of a code snippet post more than anything, but I just wanted to give a more “thorough” example of how to use Illuminate Cache from Laravel 4 as a standalone. There are a few random snippets out there, but I just want to post some sample code to save some people a few minutes to get up and running right away.

I’ve done a fair mount of research on other caching abstraction libraries out there, and I keep coming back to Laravel’s implementation because of its simplicity and its support for a wide-variety of back-ends (e.g. APC, Memcached, Redis, WinCache, XCache, Filesystem, etc.).

The following snippets will cover using the Illuminate Cache as a standalone for the Filesystem- , APC-, Redis-based (with a password/authentication) cache.

  1. {
  2. "require":{
  3. "illuminate/cache":"4.1.*@dev",
  4. "illuminate/filesystem":"4.1.*@dev",
  5. "illuminate/redis":"4.1.*@dev"
  6. }
  7. }

Illuminate Cache – Filesystem Example

  1. use Illuminate\Cache\CacheManager;
  2. use Illuminate\Filesystem\Filesystem;
  3.  
  4. $app=array(
  5. 'files'=>new FileSystem(),
  6. 'config'=>array(
  7. 'cache.driver'=>'file',
  8. 'cache.path'=>'/yourcache/dir',
  9. 'cache.prefix'=>'somenamespace_'
  10. )
  11. );
  12.  
  13. $cacheManager=new CacheManager($app);
  14. $cache=$cacheManager->driver();
  15.  
  16. $em=$cache->get("cachekey");
  17. if(is_null($em)){
  18. #echo "Added to Cache";
  19. $val=array("data"=>1);
  20. #store some data in the cache for 10 minutes
  21. $cache->put("cachekey",$val, 10);
  22. $em=$val;
  23. }
  24. var_dump($em);

Illuminate Cache – APC Example

  1. use Illuminate\Cache\CacheManager;
  2.  
  3. $app=array(
  4. 'config'=>array(
  5. 'cache.driver'=>'apc',
  6. 'cache.prefix'=>'somenamespace_'
  7. )
  8. );
  9.  
  10. $cacheManager=new CacheManager($app);
  11. $cache=$cacheManager->driver();
  12.  
  13. $em=$cache->get("cachekey");
  14. if(is_null($em)){
  15. #echo "Added to Cache";
  16. $val=array("data"=>1);
  17. #store some data in the cache for 10 minutes
  18. $cache->put("cachekey",$val, 10);
  19. $em=$val;
  20. }
  21. var_dump($em);

 

Illuminate Cache – Redis Example (with authentication)

  1. use Illuminate\Cache\CacheManager;
  2. use Illuminate\Redis\Database as Redis;
  3.  
  4. $redis=new Redis(array(
  5. 'default'=>array(
  6. 'host'=>'yourserver.com',
  7. 'port'=>16250,
  8. 'scheme'=>'tcp',
  9. ),
  10. ));
  11.  
  12. $app=array(
  13. 'redis'=>$redis,
  14. 'config'=>array(
  15. 'cache.driver'=>'redis',
  16. 'cache.prefix'=>'somenamespace_'
  17. )
  18. );
  19.  
  20. $cacheManager=new CacheManager($app);
  21. $cache=$cacheManager->driver();
  22. #authentication is optional depending on your situation
  23. $redis->command("AUTH",array("password"=>'yourpassword'));
  24.  
  25. $em=$cache->get("cachekey");
  26. if(is_null($em)){
  27. #echo "Added to Cache";
  28. $val=array("data"=>1);
  29. #store some data in the cache for 10 minutes
  30. $cache->put("cachekey",$val, 10);
  31. $em=$val;
  32. }
  33. var_dump($em);

One thought on “Using Laravel 4’s Illuminate Cache as a Standalone – FileSystem, APC and Redis (with authentication)

  1. Would like to see a memcached example on here as well. Could you do that for me?

Leave a Reply

Your email address will not be published. Required fields are marked *