Skip to content
AntonShevchuk edited this page Oct 6, 2014 · 35 revisions

Описание

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

Настройка

с версии 0.5.0 изменилась структура конфигурации пакета

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

// 
// config file cache.php
return array(
    "enabled" => true,
    "adapter" => "memcached",
    "prefix" => "bluz:",
    "settings" => array(
        "apc" => array(),
        "memcached" => array(
            "persistent" => "uid",
            "servers" => [
                ["localhost", 11211, 1],
            ]
        ),
        "phpFile" => array(
            "cacheDir" => PATH_ROOT . '/tests/cache'
        ),
        "redis" => array(
            "host" => 'localhost'
        ),
    )
)

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

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

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

"cache" => array(
    "enabled" => true,
    "adapter" => "phpFile",
    "settings" => array(
        "phpFile" => array(
            "cacheDir" => PATH_ROOT . '/tests/cache'
        ),
    )
)

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

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

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

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

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

с версии 0.6.0 изменился способ вызова - теперь только через Proxy

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

use Bluz\Proxy\Cache;

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

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

use Bluz\Proxy\Cache;

Cache::set('user:profile:42', $data, /*TTL in seconds*/ 3600);
Cache::addTag('user:profile:42', 'user');
Cache::addTag('user:profile:42', 'user:profile');

Статистика

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

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

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

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

Для работы с Redis рекомендую утилиту Redis Desktop Manager

Clone this wiki locally