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

Описание

с версии 0.5.0 изменилась структура конфигурации пакета
с версии 0.6.0 изменился способ вызова - теперь используется пакет Proxy

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

Настройка

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

"cache" => 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'])
),

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

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

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