CacheRouter is a caching system for Drupal allowing you to assign individual cache tables to specific cache technology. CacheRouter has an option to utilize the page_fast_cache part of Drupal in order to reduce the amount of resources needed for serving pages to anonymous users.

Cache Router supports the following technologies natively:

  • APC
  • Database
  • eAccelerator
  • File
  • Memcache
  • Memcached (Alpha)
  • XCache

Most of the ORIGINAL code comes from refactoring the following projects: APC,fastpath_fscache, Memcache, and XCache. However the majority of it has been completely rewritten.


  1. Enable the module in admin/build/modules.
  2. Setup your settings.php


CacheRouter has some pretty sane defaults, and it usually won’t hurt to leave it in the default mode. With that said there are a few tweaks that are critical especially if you are running multiple sites.

Add the following lines to your settings.php:

$conf['cache_inc'] = './sites/all/modules/contrib/cacherouter/';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'db',
'servers' => array(),
'shared' => TRUE,
'prefix' => '',
'path' => 'sites/default/files/filecache',
'static' => FALSE,
'fast_cache' => TRUE,

If you are using the 5.x branch of this module, you must apply the core “cache serialization” patch.

# cd /path/to/drupal
# patch -p0 < sites/all/modules/cacherouter/patches/DRUPAL-5-7-cache-serialize.patch

default is for the default caching engine. All valid cache tables or “bins” can be added in addition, but you must have a default if you skip any bins.

For engine, the current available options are: apc, db, file, memcache and xcache.

server is only used in memcache and should be an array of host:port combinations. (e.g. ‘servers’ => array(‘localhost:11211′, ‘localhost:11212′))

shared is only used on memcache as well. This allows memcache to be used with a single process and still handle flushing correctly.

prefix is for unique site names usually when running multiple sites.

path is new in beta3 for 5.x and 6.x branches. It allows you to override the default of /tmp/filecache for storing files when using the “file” caching type. *update this now works as of beta8. Also note: when using this module with multi-site setups, you need to change this to point to the file cache for each site. (e.g. sites/, sites/ or you WILL have cache corruption.

fast_cache is new in beta8 for turning page_fast_cache on. WARNING: you will not get Anonymous statistics if you use this option. Please set it to FALSE if you want to get Anonymous statistics.

static is new in beta8 for allowing a bin to keep a static array cache so multiple requests per page will not hit the remote cache. This defaults to FALSE due to the fact that in Drupal 6 there are several caches (menu, localization) that do their own static storage. Advanced feature, use at own discretion.

Post By Gishore J Kallarackal (2,121 Posts)

Gishore J Kallarackal is the founder of techgurulive. The purpose of this site is to share information about free resources that techies can use for reference. You can follow me on the social web, subscribe to the RSS Feed or sign up for the email newsletter for your daily dose of tech tips & tutorials. You can content me via @twitter or e-mail.

Website: → Techgurulive