Чудеса xcahce или Магия сессий

Привет, друзья! Совсем недавно я познакомился с этой замечательно CMS, имя которой LiveStreet.
Начал свой пробный проект. Все получалось и моглось))
Затем, был запущен сайт. Прекрасная работа, но тормоза из за файлового кеширования дали о себе знать после первых пяти топиков.

Благо, что у меня VDS и я могу подключить xcache, что собственно и сделал. Сайт стал летать. Все было очень здорово и процесс меня радовал.
Далее, я захотел сделать клон сайта, чтоб не экспериментировать на «боевом» ресурсе. Создал поддомен, новую базу, сделал дамп, ну и т.д.

Запустил сайт на поддомене, прописал все конфиги.
И тут, я решил удалить лишнее с тестовой версии…

Снес, сижу тихонечко, пишу значит код… Решил зайти на боевой сайт и чувствую, как седина начинает появляться… Блогов нет, юзеров нет, топиков нет, сайт кривой как сабля…

Сквозь слезы, я начал искать причину, проверил БД… Все было нормально.
И тут я на боевом сайте убиваю весь системный кеш. Сайт снова красив и в рабочем состоянии…

Вернулся на поддомен… Убиваю для пробы еще один топик. Иду на основной домен, та же песня.
Помогите пожалуйста разобраться, в чем проблема? Есть соль сессии где-то в движке? Как разделить их?
Спасибо большое!

[Решено] Очистка кеша после сохранения настроек

Прошу помочь.
Я пишу плагин и мне пришлось вклиниться в уже существующею форму настроек профиля (добавляя новых инпутов), а потом по хуку в евенте ловлю значения и сохраняю их в базе. Но, почему-то изменения не отображаются сразу после редиректа назад в настройки профиля, а только после обновления страницы.
Пробовал вроде как чистить кеш программно, но не получилось, видно не так делаю.

UPD. Никто не знает/поможет?
UPD2. Перед сохранением, надо было, передать в сущность текущего пользователя новые данные.
— есть текущий пользователь, полученный из бд (сущность)
— вы получаете сабмит формы и обновляете В ТАБЛИЦЕ данные настроек сущности пользователя
— но текущая сущность пользователя $this->User_GetUserCurrent() все также остается со старыми настройками, её никто не обновлял
Спасибо PSNet .

Кеширование ЛС

С наступающим Новым годом!
У меня вопрос —
На сервере ВПС включен мемкеш, в настройках ЛС
$config['sys']['cache']['type']   = 'memory'; 

По идее, все временные файлы должны лежать в оперативке, но что за временные файлы образуются у меня в папках /templates/cache и templates/compiled?

php-fpm грузит CPU на 100% после включения memcached

debian 6 + Nginx + mysql + php-fpm 5.5 + OPcache (вроде так называется, стандартный кеш в php 5,5). Включен файловый кеш в LS. Загрузка сервера выше 0.20 0.20 0.20 редко подымается.

Ставлю memcached:

apt-get install memcached php5-memcache


в /etc/memcached.conf добавляю:

-s /var/run/memcached.sock
-a 0777


Читать дальше →

Обновление модулей кеширования и логирования

В разрабатываемой версии мы переработали модули Cache и Logger — код стал проще, меньше и более функционален.

Модуль кеширования (Cache)
Реализован новый принцип работы с разными бекендами, теперь каждый бекенд представляет из себя отдельную сущность (наследуется от ModuleCache_EntityBackend). Такой подход позволяет легко добавлять новые типы бекендов — достаточно создать сущность с нужным типом кеша, например, вот так выглядит XCache:
/**
 * Бекенд xcache
 */
class ModuleCache_EntityBackendXcache extends ModuleCache_EntityBackend {
	/**
	 * Проверяет доступность использования текущего бекенда
	 *
	 * @return mixed
	 */
	public function IsAvailable() {
		if (extension_loaded('xcache')) {
			return true;
		}
		return 'The xcache extension must be loaded for using this backend!';
	}
	/**
	 * Проверяет доступность использование мульти-get запросов к кешу (указывать сразу несколько ключей)
	 *
	 * @return mixed
	 */
	public function IsAllowMultiGet() {
		return true;
	}
	/**
	 * Инициализация бекенда
	 *
	 * @param array $aParams
	 *
	 * @return mixed
	 */
	public function Init($aParams=array()) {
		require_once(LS_DKCACHE_PATH.'Cache/Backend/TagEmuWrapper.php');
		require_once(LS_DKCACHE_PATH.'Zend/Cache/Backend/Xcache.php');
		$aConfig=Config::Get('xcache');

		$oCahe = new Zend_Cache_Backend_Xcache(is_array($aConfig) ? $aConfig : array());
		if (isset($aParams['stats_callback'])) {
			$this->oCacheBackend=new Dklab_Cache_Backend_TagEmuWrapper(new Dklab_Cache_Backend_Profiler($oCahe,$aParams['stats_callback']));
		} else {
			$this->oCacheBackend=new Dklab_Cache_Backend_TagEmuWrapper($oCahe);
		}
	}
	/**
	 * Получить значение из кеша
	 *
	 * @param string $sName	Имя ключа
	 * @return mixed|bool
	 */
	public function Get($sName) {
		return $this->oCacheBackend->load($sName);
	}
	/**
	 * Записать значение в кеш
	 *
	 * @param  mixed  $mData	Данные для хранения в кеше
	 * @param  string $sName	Имя ключа
	 * @param  array  $aTags	Список тегов, для возможности удалять сразу несколько кешей по тегу
	 * @param  int|bool    $iTimeLife	Время жизни кеша в секундах
	 * @return bool
	 */
	public function Set($mData,$sName,$aTags=array(),$iTimeLife=false) {
		return $this->oCacheBackend->save($mData,$sName,$aTags,$iTimeLife);
	}
	/**
	 * Удаляет значение из кеша по ключу(имени)
	 *
	 * @param string $sName	Имя ключа
	 * @return bool
	 */
	public function Delete($sName) {
		return $this->oCacheBackend->remove($sName);
	}
	/**
	 * Чистит кеши
	 *
	 * @param string $cMode	Режим очистки кеша
	 * @param array $aTags	Список тегов, актуально для режима Zend_Cache::CLEANING_MODE_MATCHING_TAG
	 * @return bool
	 */
	public function Clean($cMode=Zend_Cache::CLEANING_MODE_ALL,$aTags=array()) {
		return $this->oCacheBackend->clean($cMode,$aTags);
	}
}

На данный момент в стандартном комплекте идет поддержка File, XCache и Memcached. Также добавлены дополнительные бекенды — FileOrm и Life. FileOrm служит для отдельного файлового кеширования схем таблиц в БД, автоматически применяется в функционале ORM. Life — это сохранение данных на время выполнения скрипта, т.е. аналог паттерна Registry. Применяется он в методах GetLife и SetLife.

Читать дальше →

Вариант решения проблемы автоматического сброса кеша на стороне пользователя

Это обсуждение, начатое в ветке комментариев здесь. Прошу разработчиков и всех, кто понимает суть вопроса высказаться о том, какой из способов очистки кеша таблиц стилей и скриптов будет наилучшим.

  1. Формировать итоговое имя файла, на основе имен файлов и их даты изменения
  2. Дать возможность админу задавать в настройках параметр, прибавляемый к файлам (?ver=N)

Читать дальше →

Уникальные имена для css файлов после сброса кеша

Я организовал отдачу слитых css с кешированием намертво на 30 дней.
И неожиданно для себя обнаружил, что при внесении изменений в css файлы, имя слитого файла остается прежним.
Т.е. изменения в файлах, из которых он состоит есть, а имя конечного файла, после сброса кеша — старое.
Мне кажется это не разумным.
По науке, при генерации хеша для имени файла, должны учитываться даты последних изменений в этих файлах.

Может кто-то подсказать как максимально корректно обеспечить уникальность слитого файла после сброса кеша?

Не могу отключить кеш и компиляцию [РЕШЕНО]

Я уже всю голову поломал, читал схожие топики по проблеме, делаю все так же, и все равно для изменений на сайте нужно чистить кеш сайта (папки cache и compiled)

вот настройки конфига:

/

// Устанавливаем настройки кеширования
$config['sys']['cache']['use'] = false; // использовать кеширование или нет
$config['sys']['cache']['type'] = 'file'; // тип кеширования: file и memory. memory использует мемкеш
$config['sys']['cache']['dir'] = '___path.root.server___/tmp/'; // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий
$config['sys']['cache']['prefix'] = 'livestreet_cache'; // префикс кеширования, чтоб можно было на одной машине держать несколько сайтов с общим кешевым хранилищем
$config['sys']['cache']['directory_level'] = 1; // уровень вложенности директорий файлового кеша
$config['sys']['cache']['solid'] = true; // Настройка использования раздельного и монолитного кеша для отдельных операций

**
* Параметры компрессии css-файлов
*/
$config['compress']['css']['merge'] = false; // указывает на необходимость слияния файлов по указанным блокам.
$config['compress']['css']['use'] = false; // указывает на необходимость компрессии файлов. Компрессия используется только в активированном режиме слияния файлов.
$config['compress']['css']['case_properties'] = 1;
$config['compress']['css']['merge_selectors'] = 0;
$config['compress']['css']['optimise_shorthands'] = 1;
$config['compress']['css']['remove_last_;'] = true;
$config['compress']['css']['css_level'] = 'CSS2.1';
$config['compress']['css']['template'] = «highest_compression»;
/**
* Параметры компрессии js-файлов
*/
$config['compress']['js']['merge'] = false; // указывает на необходимость слияния файлов по указанным блокам.
$config['compress']['js']['use'] = false; // указывает на необходимость компрессии файлов. Компрессия используется только в активированном режиме слияния файлов.

Что мне делать? Настройки вроде правильные а кеш чистить после каждого маленького изменения задрался уже…

Странное поведение xcache

Заметил странное поведение на сайте, к примеру создаю новый топик на сайте, публикую его, первые минут 20 топик то обозревается, то нет, через некоторое время нормализуется. Мне кажется все начало происходить после того как перевел сайт на xcache, или добавлю в меню раздел, его то видно, то нет. Кто нибудь наблюдал подобное, может это и не кеш вовсе, подскажите в какую сторону смотреть? Все бы ничего, но это вызывает много проблем.