Для кеша на Memcached
Проверяем наличия библиотеки Memcached для PHP:
Вывод выполненной команды:
Далее меняем в config.php и admin/config.php
system/config/default.php
Далее в папке system/storage/cache/ удаляем все файлы кроме index.html переходим на сайт и делаем переходы по страницам обновляем папку system/storage/cache/ если файлы в кэше не появляются все ОК
Очистить memcached кеш в Unix/Linux:
Для кеша на Redis
Проверяем работу Redis:
Для установки кеширования Redis у вас должен стоять и работать сервер Redis и подключен модуль redis для PHP, далее изменяем файлы так:
Далее меняем в config.php и admin/config.php
system/config/default.php
Далее в папке system/storage/cache/ удаляем все файлы кроме index.html переходим на сайт и делаем переходы по страницам обновляем папку system/storage/cache/ если файлы в кэше не появляются все ОК
Также на Redis можно вынести сессии для этого создаем файлик system/library/session/redis.php с содержимим:
И меняем настройки для фронт и бэк части в файлах system/config/catalog.php и system/config/admin.php:
после этого сессии и кэш хранятся в оперативной памяти, что обеспечивает максимальную скорость считывания к «горячим» данным.
Проверяем наличия библиотеки Memcached для PHP:
Код:
php -i |grep memcache
Вывод выполненной команды:
Код:
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 32768 => 32768
memcache.compress_threshold => 20000 => 20000
memcache.default_port => 11211 => 11211
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => consistent => consistent
memcache.lock_timeout => 15 => 15
memcache.max_failover_attempts => 20 => 20
memcache.protocol => ascii => ascii
memcache.redundancy => 1 => 1
memcache.session_redundancy => 2 => 2
Registered save handlers => files user memcache
Далее меняем в config.php и admin/config.php
Код:
// Cache
define('CACHE_HOSTNAME', 'localhost');
define('CACHE_PORT', '11211');
define('CACHE_PREFIX', 'oc_');
system/config/default.php
Код:
// Cache
$_['cache_type'] = 'mem'; // apc, file or mem
$_['cache_expire'] = 3600;
Далее в папке system/storage/cache/ удаляем все файлы кроме index.html переходим на сайт и делаем переходы по страницам обновляем папку system/storage/cache/ если файлы в кэше не появляются все ОК
Очистить memcached кеш в Unix/Linux:
Код:
$ telnet localhost 11211
flush_all
quit
Для кеша на Redis
Проверяем работу Redis:
Код:
redis-cli ping
PONG /*возврат ответа*/
Для установки кеширования Redis у вас должен стоять и работать сервер Redis и подключен модуль redis для PHP, далее изменяем файлы так:
Далее меняем в config.php и admin/config.php
Код:
// Cache
define('CACHE_HOSTNAME', 'localhost');
define('CACHE_PORT', '6379');
define('CACHE_PREFIX', 'redis_');
system/config/default.php
Код:
// Cache
$_['cache_type'] = 'redis'; // apc, file or mem
$_['cache_expire'] = 3600;
Далее в папке system/storage/cache/ удаляем все файлы кроме index.html переходим на сайт и делаем переходы по страницам обновляем папку system/storage/cache/ если файлы в кэше не появляются все ОК
Также на Redis можно вынести сессии для этого создаем файлик system/library/session/redis.php с содержимим:
Код:
<?php
/**
* Author: Shabalin Pavel
*/
namespace Session;
final class Redis
{
public $expire = '';
protected $prefix = 'sess_';
public function __construct($registry)
{
$this->redis = new \Redis();
if (!$this->redis->pconnect('127.0.0.1')) {
throw new \Exception("Permissions denied session storage");
}
$this->expire = ini_get('session.gc_maxlifetime');
}
public function read($session_id)
{
if ($this->redis->exists($this->prefix . $session_id)) {
return json_decode( $this->redis->get($this->prefix . $session_id), true );
}
return false;
}
public function write($session_id, $data)
{
if ($session_id) {
$this->redis->psetex($this->prefix . $session_id, $this->expire * 1000, json_encode($data));
}
return true;
}
public function destroy($session_id)
{
if ($this->redis->exists($this->prefix . $session_id)) {
$this->redis->delete($this->prefix . $session_id);
}
return true;
}
public function gc($expire) {
return true;
}
}
И меняем настройки для фронт и бэк части в файлах system/config/catalog.php и system/config/admin.php:
Код:
// Session
$_['session_engine'] = 'redis';
после этого сессии и кэш хранятся в оперативной памяти, что обеспечивает максимальную скорость считывания к «горячим» данным.