Как кэшировать счетчики, чтобы ускорить вставку базы данных? - PullRequest
0 голосов
/ 27 августа 2011

Как я могу кэшировать счетчики для просмотров.

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

Как кэшировать счетчики для ускорения вставок в базу данных?

Спасибо

Ответы [ 2 ]

1 голос
/ 27 августа 2011

Это звучит как идеальная работа для счетчиков Redis, вы открыты для его использования? Счетчики Redis способны совершать около 60-70 000 попаданий в секунду

redis> SET mykey "10"
OK
redis> INCR mykey
(integer) 11
redis> GET mykey
"11"
redis>
1 голос
/ 27 августа 2011
  • Полагаю, вы используете СУБД, например MySQL, попробуйте что-нибудь другое, например Redis или MongoDB. 10000 обновлений в секунду должно быть в порядке.
  • Напишите небольшое приложение на C / C ++, которое выполняет кэширование и массовые обновления. Если сервер выйдет из строя, вы потеряете кэшированные данные, но это просто счетчики, так что вы на самом деле не заботитесь об этом, верно? Если вы уже используете PHP / Perl / Python для страниц, вы также можете попытаться использовать некоторое встроенное хранилище для кэширования, которое длится дольше, чем один запрос.
...