Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Web обвязка/[help] кеширование запросов (онлайн сервера)
Search

[help] кеширование запросов (онлайн сервера)

10 replies219 viewsCurrently viewing: 1
FUyouCK
FUyouCK

User

Новичок

Posts: 6

На форуме с: 03/04/2008

Репутация: +1

Рейтинг: 0

· 11/19/2008, 06:35 AM

Как сделать чтобы скрипт делал раз в 20 минут запрос к базе, а не по каждому обновлению страници?(использую ребилион веб)
если в коде что-то надо поправить подскажите плиз что именно:

SQL
$u_query="servers1".$i; // Уникальное имя запроса (нужно для кеширования)
$query=db_query("SELECT COUNT(*) FROM `characters` WHERE online=1 AND accesslevel<5", $conn, true, $conf_cache['mod_servers'], $u_query) or db_error("Не удалось получить данные из базы", $conn);

$online_col=db_respond($query, "result", $u_query);
if (!$online_col) $online_col=0;
$gs_name=$game_server[$i]['name'];
$gs_status=$game_isonline?$conf['game_online']:$conf['game_offline'];
$gs_type=$game_server[$i]['type'];
$gs_rates=$game_server[$i]['rates'];

$game_servers_stat.=t_parse("",get_defined_vars(), $game_server_html);
if ($i<$c-1) $game_servers_stat.="<br>";

db_close($conn);
}

0
H
hellEVIL_TEAM

User

Бывалый

Posts: 292

На форуме с: 03/28/2008

Репутация: +129

Рейтинг: 0

· 11/19/2008, 10:36 AM

как ты себе это представляешь? пхп работает вообще когда его вызывают будь то пользователь на сайте или скрипт в кроне

0
FUyouCK
FUyouCK

User

Новичок

Posts: 6

На форуме с: 03/04/2008

Репутация: +1

Рейтинг: 0

· 11/19/2008, 12:18 PM

hellEVIL_TEAM: как ты себе это представляешь? пхп работает вообще когда его вызывают будь то пользователь на сайте или скрипт в кроне

а на дле реально такую статистику сделать?

0
R
RuiG

User

Участник

Posts: 55

На форуме с: 01/09/2008

Репутация: +1

Рейтинг: 0

· 01/17/2009, 07:37 PM

hellEVIL_TEAM: как ты себе это представляешь? пхп работает вообще когда его вызывают будь то пользователь на сайте или скрипт в кроне


Выполняется скрипт статистики:
Скрипт заходит в файл с кешированными данными, проверяет последнее время добавления, если данные сташе 20 минут то выполняется запрос к удаленной базе данных (ну или локально) и сохраняет данные статистики опять же в файл и меняет время добавления. Вот так по логике можно представить. Я за такой кеш только ЗА.

0
Дмитрий
Дмитрий

User

Ветеран

Posts: 834

На форуме с: 05/30/2007

Репутация: +632

Рейтинг: 0

· 01/17/2009, 08:57 PM

мда ...

по поводу кеширования. Нужно сделать выборку онлайна функцией.
1) Открываем файл, смотрим дату
2) запоминаем дату
3) сравниваем с текущей
4) если файлу меньше 20 минут - переменной, отвечающей за онлайн присваиваем значение из файла
5) закрываем файл
6) иначе конектимся
7) делаем выборку из таблицы
8) присваиваем переменной онлайна значение результата выборки
9) закрываем сеанс с БД
10) открываем фай на запись
11) стираем содержимое
12) записываем новое | дата
13) сохраняем
14) выводим результат

уважаемый, кто это вам за спасибо будет писать ? мало кто, и дело даже не в том ... какова эффективность этого ? к кешированию нужно подходить комплексно, а не так - это я закеширую, это нет. Кеширование эффективно если записывать несколько значений, а не 1 число.

WebDeveloper сервера DARKWORLD

0
R
RuiG

User

Участник

Posts: 55

На форуме с: 01/09/2008

Репутация: +1

Рейтинг: 0

· 01/17/2009, 10:09 PM

Кстати в реббелионе веб есть поддержка кеша. Может просто афтор забыл поставить настройки?

Цитата
// ------- Кэширование запросов базы данных --------

// Время кэширования запросов базы данных, по истечении которого кэш обновляется (задается в секундах)

$conf_cache['mod_servers'] = 300;
$conf_cache['mod_allys'] = 900;
$conf_cache['mod_bans'] = 900;
$conf_cache['mod_castles'] = 10800;
$conf_cache['mod_clans'] = 900;
$conf_cache['mod_general'] = 900;

0
Дмитрий
Дмитрий

User

Ветеран

Posts: 834

На форуме с: 05/30/2007

Репутация: +632

Рейтинг: 0

· 01/17/2009, 10:28 PM

может оно и кеширует, смотри наличие tmp-файлов. Если ты решил серьёзно к этому подойти - делай кеширование скомпилированного исходного кода, как например новости в ДЛЕ.

Т.е. тебе в tmp нужно забивать все данные - ячейки таблицы, в которых статус сервера, онлайн, к-во аккаунтов и персонажей - тогда от этого будет толк, т.к. во-первых нету выборки и соединения с БД, а во вторых прирост 25-80% за счёт пропуска компилирования.

// P.S. меня кеширование тоже заинтересовало, а именно на примере DLE, так что буду чего искать

WebDeveloper сервера DARKWORLD

0
H
hellEVIL_TEAM

User

Бывалый

Posts: 292

На форуме с: 03/28/2008

Репутация: +129

Рейтинг: 0

· 01/17/2009, 11:46 PM

самое основное кэширование настраиваеться на сервере mysql остальное с использованием отдельных библиотек типа memchache

0
BuDulay
BuDulay

User

Бывалый

Posts: 192

На форуме с: 06/30/2007

Репутация: +209

Рейтинг: 0

· 01/18/2009, 08:41 AM

Хм, маленько не в попад теме, но околотого: насколько выгодно использовать процедуры в mysql(mssql) вместо простых запросов из пхп (онлайн, кол-во чаров и тд и тп)

— Дурак дураком

0
Дмитрий
Дмитрий

User

Ветеран

Posts: 834

На форуме с: 05/30/2007

Репутация: +632

Рейтинг: 0

· 01/18/2009, 02:54 PM

лезем сюда:
http://la2base.ru/forum/index.php?showtopic=32388

WebDeveloper сервера DARKWORLD

0
Topic is closed for replies