Кеширане с PEAR::Cache_lite
Какво е PEAR и Cache_lite?
PEAR е база с разширения и приложения писани на php. Състои се от структурирани пакети код предоставени за безплатно ползване. Има изградена система за разпространение на код и поддръжка на пакети. Също така използва свой стандарт за писане на код.
Cache_lite е част от PEAR. Той е малка система за кеширане, оптимизиран за сайтове с голям трафик, бърз и безопасен.
Кеширането на информацията помага при наличието на голям брой потребители. Намалява запитванията към базата данни и предотвратява забавяне, което може да се получи при изчакването на базата да върне отговор при заявка. Това забавяне се получава, когато се премине броя на допустимите конекции към базата данни. Например, ако изведнъж получи 100 запитвания, а са разрешени само 30, тези 70 човека ще трябва да изчака на опашката, докато дойде техния ред. Ами ако се получат 1000+ запитвания наведнъж, колко време ще трябва да чака потребителя?
При кеширането ние изтегляме нужната ни информация само веднъж и е записваме на диска. След ново изпълнение на скрипта, ние ще проверим за кеширана информация и ако има такава ще използваме нея. Не е нужно да правим повторно или десеторно запитване към базата данни.
Пример:
CODE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| <?php
// Зареждаме Cache_lite
require_once('Cache/Lite.php');
// Задаваме уникален идентификационен код
$id = '123';
// Задаваме две опции.
// cacheDir - Директорията където ще пазим кеша
// lifetime - Времето за което е активен кеша в секунди
$options = array(
'cacheDir' => '/tmp/',
'lifeTime' => 3600
);
// Създаваме обект и му предоставяме опциите
$Cache_Lite = new Cache_Lite($options);
// Проверяваме за съществуващ идентификационен код.
// Ако е наличен кода ще използваме кеша към който сочи.
if ($data = $Cache_Lite->get($id)) {
// Извеждаме данните
echo $data;
echo “{Кеширан}”;
} else { // Нямаме кеш отговарящ на кода, така че ще създадем такъв
//Задаваме данните, които ще кешираме
$data = “Hello World”;
//Изпращаме ги към браузера
echo $data;
//Записваме данните в кеша
$Cache_Lite->save($data);
}
?> |
Ако искате да кеширате само части от данните може да постъпите по този начин:
CODE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| <?php
// Зареждаме Cache_lite
require_once('Cache/Lite.php');
// Задаваме две опции.
// cacheDir - Директорията където ще пазим кеша
// lifetime - Времето за което е активен кеша в секунди
$options = array(
'cacheDir' => '/tmp/',
'lifeTime' => 3600
);
// Създаваме обект и му предоставяме опциите
$Cache_Lite = new Cache_Lite($options);
//Обработваме блок 1
if ($data = $Cache_Lite->get(‘блок1’)) {
echo($data);
} else {
$data = ‘Данни от блок 1’;
$Cache_Lite->save($data);
}
echo('<br><br>Това не се кешира !<br><br>');
//Обработваме блок 2
if ($data = $Cache_Lite->get((‘блок2’)) {
echo($data);
} else {
$data = ‘Данни от блок 2’;
$Cache_Lite->save($data);
}
?> |