我正在开展一个项目,我将向您解释。
我有N(10000 关系由算法计算。因此,对于不同的算法,我们有不同的关系集。算法正在发生变化,但主动算法将限制在3以内。 我希望在内存中保留尽可能多的关系,或者如果随机检索它们比重新计算更快,则保留在磁盘中。 我发现redis是最好的尝试,但我们有20亿个对象,所以我希望尽可能减少内存使用量。 每个对象和每个算法由UUID表示。 我的问题是,什么是最好的策略?我应该使用redis HashMap以及如何使用?我应该使用redis vm吗?如何设计密钥(因为如果简单地连接uuids就太长了?)
答案 0 :(得分:0)
如果您无法将所有数据存储在主内存中,并且需要使用该磁盘,则Redis不是正确的选择。 VM代码已弃用Redis 2.4,已在Redis 2.6中删除。
在UUID之间存储关系也不是特别有效,因为UUID不能以单个64位整数进行编码。集合的Redis空间优化依赖于事实对象引用是64位整数(通常,关系由具有Redis的集合实现)。
我认为Neo4J或OrientDB等图形数据库可以更好地为您提供服务,其目的是存储这种关系。