This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/includes/kohana/modules/cache/guide/cache.config.md
2011-05-03 09:49:01 +10:00

168 lines
6.2 KiB
Markdown

# 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](http://www.php.net/manual/en/language.pseudo-types.php#language.types.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
(
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
(
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)',
),
## Eaccelerator settings
'eaccelerator' array
(
'driver' => 'eaccelerator',
),
## Xcache settings
'xcache' => array
(
'driver' => 'xcache',
'default_expire' => 3600,
),
## File settings
'file' => array
(
'driver' => 'file',
'cache_dir' => 'cache/.kohana_cache',
'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
)
);