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+

Что нового

  1. Очищается кеш при сохранении данных
  2. Делается 3 проверки на валидность кеша
  3. Адаптирован к PHP4+
  4. Полноценная поддержка UTF-8

Архитектура хранения данных

  1. Берется массив сериализуется
  2. Архивирунется
  3. Чтоб небыло кривых символов, накрывается base64
  4. Так как таблицы в MYSQL MEMORY ограничены и не могут хранить BLOB или TEXT, то весь текст разбивается на куски по 255 байт
  5. Сохраняем каждый кусок со своей подписью
  6. Открываем бд и скачиваем по подписи кусок за куском
  7. Сверяем все данные и если все проверки прошли кеш валиден и отдаем его

Инсталяция
Установка производится так же как и модуль 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 - Список обрабатываемых массивов