Skip to content
AntonShevchuk edited this page Sep 22, 2014 · 35 revisions

Описание

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

Настройка

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

"cache" => array(
    "enabled" => true,
    "adapter" => "memcached",
    "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,
    "tagAdapter" => "apc"
    "settings" => array(
        "apc" => array()
    )
)

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

"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:

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

Clone this wiki locally