Выберите способ расчета PV и UV в Django?

Я создаю новостной веб-сайт с помощью Django и надеюсь, что этот веб-сайт сможет обрабатывать миллионы трафика. Сейчас я пишу функцию, которая отображает наиболее просматриваемые статьи за 48 часов для читателей, поэтому мне нужно рассчитать PV.

Я искал некоторое время и спрашивал некоторых людей. Я знаю, что у меня есть несколько вариантов:

1. используя просто click_num=click_num+1, но я знаю, что это худший способ.

2. Лучше использовать Celery для кодирования распределенной задачи, но я не знаю, как именно это сделать.

3. Я слышал, что Redis также может использоваться для расчета PV и UV, но понятия не имею, как это сделать, и не уверен, что он может удовлетворить мои потребности.

4.Еще один хороший способ - использовать анализ Google, но я также понятия не имею, как это сделать, и не уверен, что он может удовлетворить мои потребности.

5. Последний способ, я думаю, самый простой способ - использовать JavaScript, но я не уверен, сможет ли он удовлетворить мои потребности.

Любой друг может дать мне несколько советов? Большое спасибо!


person William    schedule 10.05.2018    source источник
comment
Вы не получаете миллионы просмотров за один день. Нет причин писать что-то для борьбы с таким трафиком, прежде чем вы действительно увидите какие-либо проблемы с масштабированием. Google Analytics может сделать это за вас, просто добавьте их javascript на свою страницу. Или создайте свой собственный небольшой аналитический API, который вы вызываете с помощью небольшого javascript на своей странице. Даже использование обычной базы данных работает на миллионы просмотров в месяц.   -  person dirkgroten    schedule 14.05.2018
comment
Большое спасибо!   -  person William    schedule 14.05.2018
comment
Я пропустил ваш тег, вы в итоге что-то использовали?   -  person Lemayzeur    schedule 18.05.2018
comment
Да, в настоящее время я использую такие выражения F(), News.objects.filter(id=news_pk).update(pv=F('pv') + 1), в будущем я могу использовать что-то вроде redis. Но теперь я просто хочу закончить этот проект как можно скорее. :)   -  person William    schedule 18.05.2018
comment
Привет, друг, я задал новый вопрос, не могли бы вы помочь мне проверить? Большое вам спасибо! stackoverflow .com/questions/50418200/   -  person William    schedule 18.05.2018