PHP — Redis/Memcachedb/Mongodb или другое постоянное хранилище для хранения счетчика.

StackOverflow https://stackoverflow.com/questions/2035808

  •  19-09-2019
  •  | 
  •  

Вопрос

По счетчику это могут быть просмотры страниц, загрузки, количество голосов и т. д.В принципе, не очень «критичные» данные.

Каков «лучший» способ хранения этой информации?MySQL — не лучший вариант.Что вы, ребята, используете?

Это было полезно?

Решение

Я думаю, что я бы выбрал Redis, потому что:

  • Антиредиз(его ник) действительно активно развивается Редис.(Каждый раз, когда я смотрю на свою панель управления GitHub, он добавляет новый код).Сейчас он разрабатывает Redis на постоянной основе спасибо Вмваре
  • Redis в конечном итоге является постоянным, поэтому производительность просто потрясающая (сначала используется только быстрая память).
  • У Redis есть атомарный приращение операция, которая вам нужна.
  • В Redis много хороших PHP-библиотек.Еще есть такой, который пишется как Расширение C так что у него действительно хорошая производительность. Веб-сайт Redis также есть обзор этих расширений.Некоторые из них представляют собой чистый код PHP (работают немного, но медленнее, но их легче настроить).

Другие советы

MongoDB с upserts отлично подходит для этого.

Если вы храните что-то вроде:

{ "url" : "www.example.com", "pageviews" : 0 }

вы можете очень быстро атомарно увеличивать количество просмотров страниц с помощью атомарной операции $inc:

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}})

Если вы используете обновления, вам не нужно проверять, существует ли документ перед его обновлением.Например, если вы скажете:

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}}, {"upsert" : true})

документ с URL-адресом www.example.com будет создан, если он не существует (с числом просмотров страниц, равным 1), или, если он существует, количество просмотров страниц будет увеличено.Это означает, что вам не нужно беспокоиться о предварительном заполнении коллекции.

Знаменитые счетчики просмотров 1990-х годов использовали для хранения чисел простые файлы.Если все, что вам нужно, это просто сохранить один номер, ничего не подойдет.

Я бы сказал, что APC или memcached — хороший выбор.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top