我是NoSQL的新手,我想弄清楚我要构建的应用程序最合适的NoSQL实现。
我的Java应用程序需要建模一个单层神经网络的内存中哈希图,其中包含数百万至数十亿个条目。现在,我们正在使用Trove,以便能够将基元用作键和值,以减小地图的大小并提高访问速度。该地图是外部地图的键为long且内部地图的属性为long / float键/值的地图。
应用程序启动时,我们需要能够从磁盘读取已保存的状态到地图的地图。对地图的更改也需要连续或根据计划的时间间隔保存到磁盘。
最初我因OrientDB的文档和对象DB而被吸引,尽管我仍不确定在那一点上会更好。然后,我遇到了Redis,它是一个键值存储,并且与可以转储到磁盘的内存中数据集一起使用,包括主从复制。但是,看起来映射的值不能是String以外的任何值。
我在寻找合适的位置来解决我的需求吗?现在,我喜欢Redis的内存和主从方面,但是我喜欢OrientDB的对象/文档功能,因为我的数据结构比简单的String更复杂,并且能够将Trove与原始键/值类型一起使用是非常有利的。如果阅读便宜而写作昂贵而不是反之则更好。
有什么想法吗?