Реклама на сайте Advertise with us

Вопрос к PHP-профам. Простой скрипт статов/кликов...

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 12.07.04
Сообщения: 1035
Рейтинг: 678

Ссылка на сообщениеДобавлено: 05/06/08 в 23:52       Ответить с цитатойцитата 

Пишу небольшой скрипт статов/кликов. Будет работать на довольно большом трафе.

Собственно вопрос - текстовые файлы можно использовать для логов или только БД?

з.ы. при тестировании файл логов порой "обнулялся", но, я думаю дело в моих руках, а не пхп. icon_smile.gif

0
 

127.0.0.1

С нами с 26.04.06
Сообщения: 1092
Рейтинг: 557

Ссылка на сообщениеДобавлено: 06/06/08 в 02:28       Ответить с цитатойцитата 

бд требуется настраивать под большой траф, с текстовыми файлами попроще, там все опирается на кеширующую подсистему и в целом опирается на степень загруженности диска (как часто идут обращения к диску).
у меня 3 скрипта кликов (пишут разную статистику с разных сайтов) работают с текстовыми файлами, вполне справляются с небольшой (по меркам адалта) нагрузкой в 42-70к хитов в сутки

5
 



С нами с 27.06.07
Сообщения: 289
Рейтинг: 247

Ссылка на сообщениеДобавлено: 06/06/08 в 07:21       Ответить с цитатойцитата 

Joseph писал:
Пишу небольшой скрипт статов/кликов. Будет работать на довольно большом трафе.

Собственно вопрос - текстовые файлы можно использовать для логов или только БД?

з.ы. при тестировании файл логов порой "обнулялся", но, я думаю дело в моих руках, а не пхп. icon_smile.gif


я бы всё таки пихал в БД, но использовал heap-таблицы, а по крону, раз в 10-30 минут, сохранял на винт.

5
 



С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430

Ссылка на сообщениеДобавлено: 06/06/08 в 08:04       Ответить с цитатойцитата 

maybe SQLite?

5
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 06/06/08 в 08:42       Ответить с цитатойцитата 

Joseph писал:
Пишу небольшой скрипт статов/кликов. Будет работать на довольно большом трафе.

Собственно вопрос - текстовые файлы можно использовать для логов или только БД?

з.ы. при тестировании файл логов порой "обнулялся", но, я думаю дело в моих руках, а не пхп. icon_smile.gif


Любой вариант в принципе приемлем, самое главное руки выровняй icon_smile.gif

5
 

саблезубый кролик

С нами с 02.07.05
Сообщения: 2966
Рейтинг: 993

Ссылка на сообщениеДобавлено: 06/06/08 в 10:33       Ответить с цитатойцитата 

Joseph писал:
Собственно вопрос - текстовые файлы можно использовать для логов или только БД?

Лучше всего использовать Мемкэш или Trivial Database, причем tdb не тот который на sourceforge лежит а тот который в комплекте самбы идет.

.

5
 



С нами с 12.05.06
Сообщения: 132
Рейтинг: 29

Ссылка на сообщениеДобавлено: 06/06/08 в 19:15       Ответить с цитатойцитата 

Цитата:
при тестировании файл логов порой "обнулялся"
- возможна проблема как раз таки с настройками у хостера (обычно называют - неправильно настроенный модуль определения свободного места icon_smile.gif

5
 

Web Developer С++

С нами с 25.11.01
Сообщения: 859
Рейтинг: 759

Ссылка на сообщениеДобавлено: 07/06/08 в 01:57       Ответить с цитатойцитата 

Joseph, ты файл хоть флочишь при записи?

Софт для вебмастеров, криптобот, программинг (C++/PHP), партнерка: https://dfservice.com/ru/

5
 



С нами с 26.02.03
Сообщения: 2358
Рейтинг: 987

Ссылка на сообщениеДобавлено: 07/06/08 в 02:08       Ответить с цитатойцитата 

Joseph писал:
з.ы. при тестировании файл логов порой "обнулялся", но, я думаю дело в моих руках, а не пхп. icon_smile.gif
Вот поэтому и лучше пользоваться любой базой данных, что бы не думать про хранение данных, а сосредоточиться только на алгоритме работы счетчика.

5
 



С нами с 12.07.04
Сообщения: 1035
Рейтинг: 678

Ссылка на сообщениеДобавлено: 07/06/08 в 11:27       Ответить с цитатойцитата 

Спасибо всем за советы. Всем +5. ;) Буду думать насчет БД.

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

Конструкция была такой:
Код:

file();
//берем данные, делаем инкремент

//пишем все в файл, в защищенном режиме
$fp = fopen($s_file, "w+");
flock($fp, LOCK_EX))
    fwrite($fp, $n_line);
    flock($fp, LOCK_UN);
fclose($fp);

header('Location: http://abc.com'); //здесь была ошибка со слешем на конце локэйшн, из-за которой он _иногда_, но не всегда, подвисал.


Может стоит все операции с данными производить уже после flock(), обойтись без file() в начале?

DF™ писал:
Joseph, ты файл хоть флочишь при записи?


Да, когда пишу в файл - flock($fp, LOCK_EX)

Когда открываю файл для чтения (в двух скриптах, один для подсчета хитов, а другой для кликов) - просто открываю file();.

0
 



С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950


Передовик Master-X (01.01.2008)
Ссылка на сообщениеДобавлено: 07/06/08 в 11:51       Ответить с цитатойцитата 

При таком алгоритме клики могут проскальзывать.
Не забываем о параллелизме.
Я-бы рекоммендовал файл открывать эксклюзивно, пересчитывать, и закрывать.
При этом надо делать так, чтобы выдача страницы не задерживалась.

5
 

Web Developer С++

С нами с 25.11.01
Сообщения: 859
Рейтинг: 759

Ссылка на сообщениеДобавлено: 07/06/08 в 13:17       Ответить с цитатойцитата 

Joseph писал:
Конструкция была такой:
Код:

file();
//берем данные, делаем инкремент

//пишем все в файл, в защищенном режиме
$fp = fopen($s_file, "w+");
flock($fp, LOCK_EX))
    fwrite($fp, $n_line);
    flock($fp, LOCK_UN);
fclose($fp);



Это глупость!

Переделай свой код просто и забей на базы данных.

$fp = fopen($s_file, "r+");
flock($fp, LOCK_EX))
считываем данные
делаем инкремент
позицию на начала файла
fwrite($fp, $n_line);

считываем текущию позицию
обрезаем файл
fclose($fp);

Софт для вебмастеров, криптобот, программинг (C++/PHP), партнерка: https://dfservice.com/ru/

5
 

пенсионер

С нами с 07.11.02
Сообщения: 2612
Рейтинг: 1166

Ссылка на сообщениеДобавлено: 07/06/08 в 16:39       Ответить с цитатойцитата 

какие то примеры извращенные. куча лишних или непродуманных действий.

по сабжу, на серьезном трафе варианта 2:
логи (текстовый формат).
специализированный демон.

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

причем судя по приведенным выше кускам кода - ТС действительно лучше БД использовать - так как с такой логикой написания скриптов далеко не уехать. А базы данных множество косяков алгоритма могут сгладить.

Здесь ищу и даю работу^так делаю деньги
тут читаю инфу^веду блог, а вы?

5
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »