Kohana Cache configuration

Kohana Cache uses configuration groups to create cache instances. A configuration group can use any supported driver, with successive groups using multiple instances of the same driver type.

The default cache group is loaded based on the Cache::$default setting. It is set to the file driver as standard, however this can be changed within the /application/boostrap.php file.

 // Change the default cache driver to memcache
 Cache::$default = 'memcache';

 // Load the memcache cache driver using default setting
 $memcache = Cache::instance();

Group settings

Below are the default cache configuration groups for each supported driver. Add to- or override these settings within the application/config/cache.php file.

Name Required Description
driver YES (string) The driver type to use
default_expire NO (string) The driver type to use
'file'  => array
(
    'driver'             => 'file',
    'cache_dir'          => APPPATH.'cache/.kohana_cache',
    'default_expire'     => 3600,
),

Memcache & Memcached-tag settings

Name Required Description
driver YES (string) The driver type to use
servers YES (array) Associative array of server details, must include a host key. (see Memcache server configuration below)
compression NO (boolean) Use data compression when caching

Memcache server configuration

Name Required Description
host YES (string) The host of the memcache server, i.e. localhost; or 127.0.0.1; or memcache.domain.tld
port NO (integer) Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets. Default 11211
persistent NO (boolean) Controls the use of a persistent connection. Default TRUE
weight NO (integer) Number of buckets to create for this server which in turn control its probability of it being selected. The probability is relative to the total weight of all servers. Default 1
timeout NO (integer) Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow. Default 1
retry_interval NO (integer) Controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. Default 15
status NO (boolean) Controls if the server should be flagged as online. Default TRUE
failure_callback NO (callback) Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server. Default NULL
'memcache' => array
(
    'driver'             => 'memcache',
    'default_expire'     => 3600,
    'compression'        => FALSE,              // Use Zlib compression 
                                                // (can cause issues with integers)
    'servers'            => array
    (
        'local' => array
        (
            'host'             => 'localhost',  // Memcache Server
            'port'             => 11211,        // Memcache port number
            'persistent'       => FALSE,        // Persistent connection
        ),
    ),
),
'memcachetag' => array
(
    'driver'             => 'memcachetag',
    'default_expire'     => 3600,
    'compression'        => FALSE,              // Use Zlib compression 
                                                // (can cause issues with integers)
    'servers'            => array
    (
        'local' => array
        (
            'host'             => 'localhost',  // Memcache Server
            'port'             => 11211,        // Memcache port number
            'persistent'       => FALSE,        // Persistent connection
        ),
    ),
),

APC settings

'apc'      => array
(
    'driver'             => 'apc',
    'default_expire'     => 3600,
),

SQLite settings

'sqlite'   => array
(
    'driver'             => 'sqlite',
    'default_expire'     => 3600,
    'database'           => APPPATH.'cache/kohana-cache.sql3',
    'schema'             => 'CREATE TABLE caches(id VARCHAR(127) PRIMARY KEY, 
                                      tags VARCHAR(255), expiration INTEGER, cache TEXT)',
),

File settings

'file'    => array
(
    'driver'             => 'file',
    'cache_dir'          => 'cache/.kohana_cache',
    'default_expire'     => 3600,
)

Wincache settings

'wincache' => array
(
    'driver'             => 'wincache',
    'default_expire'     => 3600,
),

Override existing configuration group

The following example demonstrates how to override an existing configuration setting, using the config file in /application/config/cache.php.

<?php defined('SYSPATH') or die('No direct script access.');
return array
(
    // Override the default configuration
    'memcache'   => array
    (
        'driver'         => 'memcache',  // Use Memcached as the default driver
        'default_expire' => 8000,        // Overide default expiry
        'servers'        => array
        (
            // Add a new server
            array
            (
                'host'       => 'cache.domain.tld',
                'port'       => 11211,
                'persistent' => FALSE
            )
        ),
        'compression'    => FALSE
    )
);

Add new configuration group

The following example demonstrates how to add a new configuration setting, using the config file in /application/config/cache.php.

<?php defined('SYSPATH') or die('No direct script access.');
return array
(
    // Override the default configuration
    'fastkv'   => array
    (
        'driver'         => 'apc',  // Use Memcached as the default driver
        'default_expire' => 1000,   // Overide default expiry
    )
);