Skip to content
Anton edited this page May 19, 2014 · 35 revisions

Описание

Данный класс лишь враппер для ленивой инициализации адаптеров кеширования, ну и чтобы ничего не ломалось, даже если кеш пытаемся использовать без подключенного кеширования. Так же есть возможность вешать метки на определенные ключи (тегировать)

Настройка

Пример настройки для использования memcached как основного адаптера кеширования:

"cache" => array(
    "enabled" => true,
    "settings" => array(
        "cacheAdapter" => array(
            "name" => "memcached",
            "persistent" => "my",  // required for persistent connection
            "settings" => array(
                "servers" => array(
                    ["127.0.0.1", 11211, 1],
                )
            )
        )
    )
)

Пример настройки для работы с Redis:

"cache" => array(
    "enabled" => true,
    "settings" => array(
        "cacheAdapter" => array(
            "name" => "redis",
            "settings" => array(
                "host" => '127.0.0.1',
                "port" => '6379',
                "options" => array(
                    \Redis::OPT_SERIALIZER => \Redis::SERIALIZER_PHP
                 )
            )
        ),
    )
)

Пример настройки для работы с файлами:

"cache" => array(
    "enabled" => true,
    "settings" => array(
        "cacheAdapter" => array(
            "name" => "phpFile",
            "settings" => array(
                "cacheDir" => PATH_DATA .'/cache'
            )
        ),
    )
)

По умолчанию, для тегирования используется тот же адаптер кеширования, но мы можем указать другой:

"cache" => array(
    "enabled" => true,
    "settings" => array(
        "tagAdapter" => "apc"
    )
)

Можно непосредственно в конфигурационном файле инициировать адаптер:

"cache" => array(
    "tagAdapter" => new \Bluz\Cache\Adapter\PhpFile(['cacheDir'=>PATH_DATA.'/cache'])
),

Использование

Код контроллера:

if (!$data = $this->getCache()->get('key')) {
    $data = 1*2*3*4*5; // any calculation
    $this->getCache()->set('key', $data, /*TTL in seconds*/ 60)
}

Работа с метками:

$this->getCache()->set('user:profile:42', $data, /*TTL in seconds*/ 3600);
$this->getCache()->addTag('user:profile:42', 'user');
$this->getCache()->addTag('user:profile:42', 'user:profile');

Статистика

Для отображения статистики APC достаточно найти файл apc.php:

find / -name apc.php* 2>/dev/null

И затем уже его вызвать (настройки доступа описаны внутри скрипта).

Аналогичный скрипт написан и для memcache:

Clone this wiki locally