שימוש ב-Caching
Caching הוא כלי חשוב לשיפור ביצועי אפליקציות PHP. הוא מפחית את העומס על השרת על ידי אחסון תוצאות של פעולות חוזרות במקום לבצע אותן בכל פעם מחדש.
שימוש ב-Opcode Caching
Opcode Cache מאחסן את התוצאות של PHP Compiler כך שאין צורך לפרש את הקוד בכל פעם.
הגדרת OPcache:
// בקובץ php.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.validate_timestamps=0
שימוש ב-Memcached
Memcached מאפשר אחסון של נתונים בזיכרון עבור גישה מהירה יותר.
דוגמה לשימוש:
$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);
// אחסון נתונים
$memcached->set('key', 'value', 3600);
// שליפת נתונים
$value = $memcached->get('key');
echo $value;
שימוש ב-Redis
Redis הוא כלי Caching מתקדם התומך גם במבני נתונים כמו רשימות ומערכים.
דוגמה לשימוש:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// אחסון נתונים
$redis->set('key', 'value');
$redis->expire('key', 3600);
// שליפת נתונים
$value = $redis->get('key');
echo $value;
שימוש ב-Page Caching
Page Caching מאחסן את התוצאה של דפי HTML כך שאין צורך לייצרם מחדש בכל בקשה.
דוגמה בסיסית:
$cacheFile = 'cache.html';
$cacheTime = 3600;
if (file_exists($cacheFile) && time() – filemtime($cacheFile)
Welcome to My Site
This is a cached page.
<?php
$output = ob_get_clean();
file_put_contents($cacheFile, $output);
echo $output;
שימוש ב-Database Query Caching
שמירה של תוצאות שאילתות לזמן קצר כדי להפחית גישה למסד הנתונים.
דוגמה:
$query = 'SELECT * FROM users';
$cacheKey = md5($query);
$result = $redis->get($cacheKey);
if (!$result) {
$result = $pdo->query($query)->fetchAll();
$redis->set($cacheKey, serialize($result), 3600);
} else {
$result = unserialize($result);
}
תרגול
- הגדירו OPcache בפרויקט שלכם ובדקו את הביצועים.
- שלבו Memcached או Redis לאחסון זמני של תוצאות שאילתות.
- יישמו Page Caching בסיסי לדפי האתר.