Table Cache - Теперь drupal сможет работать и на самых дешевых хостингах
Это как раз тот модуль о котором говорил на seopult.ru
Написал модуль аналог memcache но на таблицах MYSQL находящихся в памяти (ENGINE=MEMORY).
Кому это может быть интепресно:
Если ваш сайт долго грузится а хостер не желает вам настраивать MYSQL (оптимизировать), не желает ставить всевозможные модули кеширования: memcache, APC, EAcselerator etc. То этот модуль для вас.
Что он делает
Берет массив сериализует его потом сжимает и кладет в base64. Далее делит на требуе кол-во, необходимое для полного размещения в БД. При этом каждый кусок подписывается. Так же в базу пишется хеш если хеш то что записан и то что получилось при распаковке и де-base64 верен то кеш считается правильным и отдается сайту. Если нет кеш берется как обычно.
Где применяется
Поставил на свой рабочий сайт программы Roof Builder www.roof-builder.ru
Запустил сайт на котором выкладуваю его с доступной статистикой www.mdinc.ru
Сайт строительной тематики www.firma-ms.ru
Откуда скачать
Берем тут
Скрипт оптимизировал под PHP4+
Что нового
- Очищается кеш при сохранении данных
- Делается 3 проверки на валидность кеша
- Адаптирован к PHP4+
- Полноценная поддержка UTF-8
Архитектура хранения данных
- Берется массив сериализуется
- Архивирунется
- Чтоб небыло кривых символов, накрывается base64
- Так как таблицы в MYSQL MEMORY ограничены и не могут хранить BLOB или TEXT, то весь текст разбивается на куски по 255 байт
- Сохраняем каждый кусок со своей подписью
- Открываем бд и скачиваем по подписи кусок за куском
- Сверяем все данные и если все проверки прошли кеш валиден и отдаем его
Инсталяция
Установка производится так же как и модуль memcache. Те в файл /sites/default/settings.php
В конец файла добавляем:
$conf=array(
'cache_inc' =>'sites/all/modules/tablecache/tablecache.db.inc',
/*Где храним*/
'tablecache_servers' => array(
'my_cache_table' => 'default',
),
/*Что хоти хранить в кеше*/
'tablecache_bins' => array(
'cache' => 'default',
'links' => 'default',
'cache_filter' => 'default',
'cache_menu' => 'default',
'cache_page' => 'default',
'session' => 'default',
'users' => 'default',
),
);
TableCache statistics.
- get:
- variables
- schema
- theme_registry:andreas1024px
- links:navigation:all-cid:0
- links:navigation:tree-data:3d692316bb133ab0048b0983a7189802
- links:primary-links:all-cid:0
- links:primary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
- links:secondary-links:all-cid:0
- links:secondary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
- links:navigation:page-cid:node/1/edit:1
- links:navigation:tree-data:f05af9c9eaf8d2c5a8b121c23535c2fa
- links:primary-links:page-cid:node/1/edit:1
- links:primary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
- links:secondary-links:page-cid:node/1/edit:1
- links:secondary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
- set:
- form_form-acec914a86cf7d0490d3aa4f57206879
- links:navigation:page-cid:node/1/edit:1
- links:primary-links:page-cid:node/1/edit:1
- links:secondary-links:page-cid:node/1/edit:1
- hit:
- variables
- schema
- theme_registry:andreas1024px
- links:navigation:all-cid:0
- links:navigation:tree-data:3d692316bb133ab0048b0983a7189802
- links:primary-links:all-cid:0
- links:primary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
- links:secondary-links:all-cid:0
- links:secondary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
- links:navigation:tree-data:f05af9c9eaf8d2c5a8b121c23535c2fa
- links:primary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
- links:secondary-links:tree-data:5d6d3aaaaef5fba302ce62698fa37bbe
- bins:
- cache
- cache
- cache
- cache_menu
- cache_menu
- cache_menu
- cache_menu
- cache_menu
- cache_menu
- cache_form
- cache_menu
- cache_menu
- cache_menu
- cache_menu
- cache_menu
- cache_menu
- cache_menu
- cache_menu
- cache_menu
Статистика внизу каждой страницы (Доступна только админам (опционально))
get - Забираем из памяти
set - Записываем в память
hit - То что находится м кеше
bins - Список обрабатываемых массивов