Кеширование
•
• для гостей
• для пользователей
• для базы данных
• и просто memcached
Slide 10
Slide 10 text
Кеширование "для гостей"
•
• проверяем cookie авторизации
o проверяем попадание в кеш
загружаем html файл
o гененрируем html файл
register_shutdown_function()
Slide 11
Slide 11 text
Для пользователей
На уровне шаблонизатора
Template::display("header.phtml");
if (!Template::cache("action", 60, $keys)) {
// action logic here
Template::display("action.phtml");
}
Template::display("footer.phtml");
Slide 12
Slide 12 text
Для базы данных
1.
1. PDO wrapper
2. INSERT/UPDATE/DELETE идут на master
3. SELECT запросы идут на slave
a. кешировались изначально на 5 минут
b. в течении двух-недель это тюнилось
1. Тяжёлые SELECT делятся между master и
slave (таких лишь два на всю систему)
Slide 13
Slide 13 text
session has gone
memcached has come
Slide 14
Slide 14 text
memcached
must be
Slide 15
Slide 15 text
Поиск переехал
Не используйте PECL extension*
Slide 16
Slide 16 text
Форум переехал
15%*
Slide 17
Slide 17 text
Чат переехал
Чат на node.js + socket.io не взлетел*
Slide 18
Slide 18 text
Статистика переехала
Google Analytics
Slide 19
Slide 19 text
PHP framework
• Memcached wrapper
• PDO wrapper
• Simple Active Record
• Simple Template Engine
• MVC в одном index.php
Часть кода мигрировала в Bluz Framework