Увеличивая сотни счетчиков одновременно, Redis или Mongodb?

Background/Intent:

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

Например, все страны в разбивке по операционным системам. Желаемый эффект будет:

US # of events iOS - # of events that occured in US Android - # of events that occured in US CA # of events iOS - # of events that occured in CA Android - # of events that occured in CA etc.

Я намерен принять следующие имена событий:

/?country=US&os=iOS&device=iPhone&color=blue&carrier=Sprint&city=orlando&state=FL&randomParam=123&randomParam2=456&randomParam3=789

Это означает, что для создания реляционных счетчиков для чего-то подобного выше, я потенциально буду увеличивать более 100 счетчиков за запрос.

Предположим, что будет более 10 миллионов вышеуказанных запросов в день.

Я хочу, чтобы все было абсолютно динамично с точки зрения отслеживаемых имен событий, и я также хочу сделать это таким образом, чтобы поиск данных оставался очень быстрым. В связи с этим я пытался использовать Redis или Mongodb для этого.

Questions:

Is there a better way to do this then counters while keeping the fields dynamic?

Provided this was all in one document (structured like a tree), would using the $inc operator in mongodb to increment 100+ counters at the same time in one operation be viable and not slow? The upside here being I can retrieve all of the statistics for one 'campaign' quickly in a single query.

Would this be better suited to redis and to do a zincrby for all of the applicable counters for the event?

Спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос