哪种NoSQL实现最合适?

her*_*tim 6 java nosql redis trove4j orientdb

我是NoSQL的新手,我正在试图为我正在尝试构建的应用程序找出最合适的NoSQL实现.

我的Java应用程序需要有一个内存中的hashmap,它包含数百万到数十亿的条目,因为它模拟了单层神经网络.现在我们正在使用Trove,以便能够使用基元作为键和值来减小地图的大小并提高访问速度.地图是地图的地图,其中外部地图的键是长的,内部地图具有长/浮动键/值.

我们需要能够在应用程序启动时从磁盘读取保存的状态到地图的映射.地图地图的更改也需要连续或根据某个预定的时间间隔保存到磁盘.

由于他们的文档和对象数据库,我最初被吸引到OrientDB,虽然我现在还不确定什么会更好.然后我遇到了Redis,它是一个键值存储,可以使用内存数据集,可以转储到磁盘,包括主从复制.但是,看起来地图的值看起来不像字符串.

我是否正在寻找合适的地方来解决我的需求?现在,我喜欢Redis的内存和主从方面,但我喜欢OrientDB的对象/文档功能,因为我的数据结构比简单的字符串更复杂,并且能够使用原始键/值类型的Trove非常有利.如果阅读价格便宜并且写作费用昂贵而不是反过来会更好.

思考?

Joh*_*nck 4

为什么不直接将 Trove 数据结构序列化到磁盘呢?从文档( http://trove4j.sourceforge.net/javadocs/serialized-form.html )来看,似乎有某种支持,但很难说,因为它都是自动生成的,而不是可爱的-做了教程。尽管如此,对于您的用例来说,为什么您需要一个合适的数据库并不明显,所以也许 KISS 适用。