Я хотел бы добавить счетчик посетителей на мой сайт.
Макс Статистика:
1 миллион просмотров в минуту
6 запросов на загрузку страницы
Поэтому я прошу вас,
Является ли MYSQL и PHP для уникального счетчика посетителей лучшим решением?
Или я должен использовать что-то другое?
Для 1 миллиона просмотров в минуту, когда вы считаете количество просмотров как счетчик посещений (более того, с проверкой дубликатов) … php / mysql не будет работать очень хорошо (если у вас нет большой фермы серверов).
Если вам нужна в реальном времени хит-кутинг, я бы сделал это, используя комбинацию nginx + redis http://redis4you.com/code.php?id=009 + JavaScript, не используя php и mysql вообще.
1 — Jquery (или javascript) может проверить, есть ли у пользователя cookie, и если нет, сохранить «уникальный случайный cookie хеша» для каждого (user + page) (не просто использовать ip, потому что несколько пользователей за прокси могут использовать тот же ip, например: крупные компании с прокси для интернета, университеты, общедоступный wifi и т. д.).
2 — После генерации хеша или, если cookie существует, Jquery может решить сделать асинхронный запрос к серверу nginx, используя хеш в качестве идентификатора.
3 — Nginx может напрямую общаться с Redis через апстрим (очень быстро) (https://github.com/openresty/redis2-nginx-module) и может также проверить наличие файлов cookie, если это необходимо.
4 — Redis очень быстр и может автоматически увеличивать значения (попадания) на основе значения ключа (например, идентификатора страницы), сохраняя перезагрузки (в отличие от memcache).
5 — Вы можете легко запросить redis из php (например, memcache), чтобы отобразить счетчик посещений на любой странице.
===
Другим возможным способом (но не в реальном времени) будет установка поля с nginx и включение журнала доступа.
1 — На вашем сайте включите JavaScript, который вызывает файл на этом сервере nginx, например: http://stats.server.com/hit.js?page=12345&userhash=some_md5_hash_here
2 — Настройте задание cron на сервере nginx для анализа этих журналов на предмет уникальных представлений.
3 — Nginx может легко обслуживать 20 000 запросов в секунду на компьютере E3 1230v2.
Других решений пока нет …