Мне нужна помощь для реализации кеша в Zend Framework - PullRequest
0 голосов
/ 12 марта 2012

Мне нужно извлечь некоторые данные из базы данных и поместить их в кеш. Я понятия не имею об этом, и я очень хорошо разбираюсь в Zend Framework. Я использую Zend Framework1.11.1 и Wamp-сервер. Может ли кто-нибудь помочь мне, как начать и как это сделать, какие-либо tutoria.pls поможет мне

Ответы [ 3 ]

1 голос
/ 27 декабря 2013

Zend Cache Обеспечивает очень простой способ хранения данных в кеше и увеличения скорости.Zend использует Frontend и Back end для кэширования.Внешний интерфейс полезен для доступа к кэш-памяти или для ее работы.Back end полезен для хранения данных в File, Memcache, Sqlite и т.д.) {

$frontend= array(
    'lifetime' => 7200,
    'automatic_serialization' => true
);

$backend= array(
    'cache_dir' => '../application/tmp/',
);

$cache = Zend_Cache::factory('core',
        'File',
        $frontend,
        $backend
);
Zend_Registry::set('cache',$cache);

}

затем используйте фабрику кеша zend для определения объекта кеша.Ядро параметра определяет средство ядра кеша zend универсального типа. Параметр файла предназначен для определения средства хранения кеша, в котором следует хранить записи кеша, затем второе и четвертое - для внешнего интерфейса и внутреннего интерфейса.

Теперь зарегистрируйте этот массив кешаZend Registry, чтобы вы могли использовать их в любом контроллере, модели и т. д.

Определите код ниже в любом контроллере или любой модели, в которой вы хотите использовать кэширование данных.

    $result1 =””;
    $cache = Zend_Registry::get('cache');

if(!$result1 = $cache->load('mydata')) {
        echo 'caching the data…..';
    $data=array(1,2,3);
    $cache->save($data, 'mydata');
} else {
    echo 'retrieving cache data…….';
    Zend_Debug::dump($result1);
}

сначалавсего вышеприведенного кода мы получаем массив кеша.Теперь, если результат один не установлен, то кэширование выполнено означает, что файл генерируется по пути, указанному вами в фоновом массиве

При следующей загрузке страницы в следующий раз эти данные извлекаются из файла, в котором хранятся данные кэширования..

Вы можете проверить файл по заданному пути.

В этом файле данные представлены в формате json.

0 голосов
/ 06 ноября 2012

это пример того, как работает Zend_Cache: вам нужна система memcached, работающая на вашем локальном хосте, или вы можете использовать Backend_File для хранения кэшированных элементов в файлах.

# Определите это в вашей начальной загрузке

// configure caching frontend strategy
    $oFrontend = new Zend_Cache_Core(
        array(
    'caching' => true,
            'automatic_serialization' => true,
            'ignore_user_abort' => true,
            'lifetime' => 3600
        )
    );

// configure caching backend strategy
    $oBackend = new Zend_Cache_Backend_Memcached(
        array(
            'servers' => array(
                array(
                    'host' => "127.0.0.1",
                    'port' => "11211", 
                )
            ),
            'compression' => true
        )
    );

// getting a Zend_Cache_Frontend_Page object
    $cache = Zend_Cache::factory($oFrontend, $oBackend);

    Zend_Registry::set('cache', $cache);

# и затем в вашем контроллере вы можете использовать его следующим образом:

    $cache = Zend_Registry::get('cache');
    # save item in memcached
    $data = array(1,2,3,4,5);
    $cache->save($data, "cache_name");

    # load item from your cache
    print_r($cache->load("cache_name"));

Затем вы можете увидеть в онлайн-документации Zend Framework все внешние интерфейсы, серверные части и доступные параметры по порядку.чтобы настроить его для ваших конкретных потребностей.

0 голосов
/ 12 марта 2012

Похоже, что это имеет отношение к тому, что вы хотите:

http://www.joeyrivera.com/2009/caching-using-phpzend_cache-and-mysql/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...