背景/意图:
因此,我将从头开始创建一个事件跟踪器,并对如何执行此操作有一些想法,但我不确定处理数据库方面的最佳方法。我感兴趣的一件事是允许这些事件完全动态,但同时允许报告关系事件计数器。
例如,按操作系统划分的所有国家/地区。期望的效果是:
- 美国事件数
- iOS - 美国发生的事件数
- Android - 在美国发生的事件数
- CA # 事件
- iOS - CA 中发生的事件数
- Android - 在 CA 中发生的事件数
- 等等
我的意图是能够像这样接受这些事件名称:
/?country=US&os=iOS&device=iPhone&color=blue&carrier=Sprint&city=orlando&state=FL&randomParam=123&randomParam2=456&randomParam3=789
这意味着为了对类似上面的事情进行关系计数器,我可能会为每个请求增加 100 多个计数器。
假设每天将有 10+ 百万个上述请求。
我希望在跟踪事件名称方面保持完全动态,并且我还希望以这样一种方式进行,即对数据的查找保持超快。因此,我一直在研究为此使用 redis 或 mongodb。
问题:
有没有更好的方法来做到这一点,然后在保持字段动态的同时进行计数器?
如果这一切都在一个文档中(结构像一棵树),那么使用 mongodb 中的 $inc 运算符在一个操作中同时增加 100 多个计数器是否可行且不慢?这里的好处是我可以在单个查询中快速检索一个“活动”的所有统计信息。
这会更适合 redis 并为事件的所有适用计数器做一个 zincrby 吗?
谢谢