-
Notifications
You must be signed in to change notification settings - Fork 39
Cache
Требует PECL расширение memcached.
Данный класс лишь враппер для ленивой инициализации Memcached, ну и чтобы ничего не ломалось, даже если кеш пытаемся использовать без наличия серверов memcache
Указываем наши memcache сервера (host, port, weight):
<?php
"cache" => array(
"cache" => true, // enable/disable cache
"servers" => array(
array("my.server.com", 11211, 1),
),
),
Memcached имеет возможность повесить на него механизм сессии, для этого потребуется внести изменения в php.ini:
session.save_handler = memcached
session.save_path="server:port"
Не путайте два расширения - memcache и memcached, у них и настройки разные:
; Memcache session.save_handler = memcache session.save_path = "tcp://localhost:11211" ; MemcacheD session.save_handler = memcached session.save_path = "localhost:11211"В системе используем memcached, так он живёт и здравствует, т.е. поддерживается и обновляется
Читаем документацию по Memcached, ну а так есть небольшой довесок в виде функции getData:
<?php
/**
* Get data from cache
* otherwise call callback function
*
* @param string $key
* @param \closure $callback
* @param int $ttl
* @throws \Bluz\Exception
* @return mixed
*/
$userRow = $cache->getData('UserID:'.$id, function() use ($id) {
return Users\Table::getInstance()->findRow($id);
}, 30);
В действительности необходим следующий интерфейс:
<?php
function get($key, $callback, $ttl, $tags);
function update($key, $value, $ttl);
function clearByKey($key);
function clearByTag($tag);
function clear();
Acl
Application
Auth
Cache
Common
— Exception
— Collection
— Container
— Helper
— Options
— Singleton
Config
Controller
— Data
— Mapper
—— Crud
—— Rest
— Reflection
Crud
— Crud Table
Db
— Row
— Table
— Relations
— Query
Debug
EventManager
Grid
Http
Layout
Logger
Mailer
Messages
Nil
Proxy
Registry
Request
Response
Router
Session
Translator
Validator
View