在内存中mongodb用于读密集型应用程序

时间:2015-04-29 12:11:16

标签: java mongodb tokumx fongo

我有一个项目,其中数据是只读的(根本没有写入),并且对于每个请求,执行了几千个读取,因此瓶颈是从数据库获取数据。

我们在tmpfs(~12GB压缩数据库)上运行tokumx,它仍然很慢,因为序列化和套接字通信需要很长时间,所以我想"缓存"通过一个简单查询访问的450万个文档的一个关键集合。最终,我们可能会将整个数据库迁移到某个内存数据存储,因为它会使速度更快。

目前,我正在考虑使用在app启动时加载的普通hashmap,但我不确定这是最好的方法:)其他选项如Fongo都是用于单元测试而且我不确定他们是否足够快以应对这种情况

有什么建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我建议您查看Google图书馆番石榴。

https://github.com/google/guava

使用缓存,您可以在应用启动时加载数据,但如果数据不在缓存中,您可以创建一个查询数据库的函数。