我是 NoSQL 的新手,我正在为我正在尝试构建的应用程序找出最合适的 NoSQL 实现而摸不着头脑。
我的 Java 应用程序需要一个包含数百万到数十亿个条目的内存哈希图,因为它对单层神经网络进行建模。现在我们正在使用Trove,以便能够使用原语作为键和值来减小映射的大小并提高访问速度。该映射是映射的映射,其中外部映射的键是长整数,而内部映射具有长/浮点键/值。
当应用程序启动时,我们需要能够将保存的状态从磁盘读取到地图地图中。对地图地图的更改也需要连续或根据某个预定间隔保存到磁盘。
起初我被OrientDB所吸引是因为他们的文档和对象数据库,尽管我现在还不确定什么会更好。然后我遇到了Redis,它是一个键值存储,与可以转储到磁盘的内存数据集一起使用,包括主从复制。但是,地图的值看起来不能是字符串以外的任何值。
我是否在正确的地方寻找满足我需求的解决方案?现在,我喜欢 Redis 的内存和主从方面,但我喜欢 OrientDB 的对象/文档功能,因为我的数据结构比简单的字符串更复杂,并且能够将 Trove 与原始键/值类型一起使用非常有利。如果阅读便宜而写作昂贵而不是相反,那就更好了。
想法?