MongoDB缓存计数器

thw*_*hwd 4 counter caching mongodb

我正在为使用MongoDB作为其"DB-Engine"的网站上的产品编写访问计数器.

在这里它说Mongo将频繁访问的内容保存在内存中,并具有集成的内存缓存引擎.

那么我可以继续使用这个集成的缓存系统,并在每次访问时笨拙地设置计数器,还是在高流量环境中还需要另一个缓存层?

Rem*_*iet 5

他们是两个独立的东西.MongoDB使用一个简单的分页内存管理系统,根据设计,它可以将内存映射磁盘空间中访问最多的部分保存在内存中.

因此,这对于经常请求但不经常更改的计数器最有帮助.不幸的是,网站柜台这两件事是相互排斥的.因为增加计数器通常不会导致MongoDB将持有计数器的文档移动到磁盘上,所以读取缓存仍然相当有效.

主要问题是你的写作,基本上每次访问增加不会非常划算.我建议的策略,其中你的web应用程序计数器缓存传入访问,只推计数器每隔X访问或每隔Y秒更新,以先到者为准.这里的主要目标是减少每秒写入次数,因此您绝对不希望每次计数器访问都有db写入.