отображение # просмотров на странице без постоянного попадания в базу данных - PullRequest
3 голосов
/ 05 февраля 2009

Все больше и больше сайтов отображают количество просмотров (и кликов, как на dzone.com), которые получают определенные страницы. Какова лучшая практика для отслеживания просмотров # без попадания в базу данных при каждой загрузке?

У меня есть куча потенциальных идей о том, как это сделать, но ни одна из них не кажется жизнеспособной.

Спасибо, первый пользователь.

Ответы [ 5 ]

3 голосов
/ 06 февраля 2009

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

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

2 голосов
/ 06 февраля 2009

Один дешевый трюк - просто кешировать значение на несколько минут.

Точное количество просмотров в любом случае не имеет большого значения, поскольку на занятом сайте, когда посетитель просматривает страницу, уже появляется целая партия новых просмотров.

1 голос
/ 28 мая 2009

Одним из способов является использование memcached в качестве счетчика. Вы можете изменить эту реализацию ограничения скорости , чтобы вместо этого действовать как общий счетчик. Ключ может быть в формате ггггммдччмм с истечением 15 или 30 минут (в зависимости от того, что вы считаете одновременными посетителями), а затем просто get эти клавиши при отображении страницы.

Хорошие библиотеки для связи с сервером memcache доступны на многих языках .

0 голосов
/ 06 февраля 2009

Если вы используете сценарии на стороне сервера, увеличьте его в переменной. Вероятно, произойдет сброс, если вы перезапустите службы, поэтому не очень хорошая идея, если нужна точность.

0 голосов
/ 05 февраля 2009

Вы можете создать плоский файл с количеством совпадений. Это может иметь проблемы с масштабированием, но это может сработать.

Если вам не нужно отображать количество просмотров страниц, вы можете использовать что-то вроде Google Analytics или piwik . Оба делают запросы после того, как страница уже загружена, поэтому это не повлияет на время загрузки. Возможно, есть способ сделать ajax-запрос к аналитическому серверу, но я точно не знаю. Piwik с открытым исходным кодом, так что вы, вероятно, можете взломать что-нибудь вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...