存储需要从多个实例访问的数据的最佳方法

时间:2019-04-20 16:20:44

标签: java database caching sharding multi-instance-deployment

以什么样的方式缓存需要从不同的实例以最少的开销从根本上不断访问的那种数据呢?

我目前正在使用Mongo,但它却造成了每个玩家经常访问的过多开销。问题是聚会,您可以在其中创建一小撮玩家,并在我们的整个服务过程中与他们联系。虽然这些服务是分片的(在多个实例中拆分),但我无法在本地缓存它们,因为需要在另一个实例上再次访问它(如果在该实例上有一方成员)。

我正在考虑以下方法之一,但是我不知道要使用哪种数据库。

onJoin:  如果未从mongo db中加载pull,则将其存储在可以访问的某些缓存数据库中,例如Mongo(Query.field(“ members。” + uuid)),这样我就可以使其保持高效。

onLeave:  如果它是最后一个成员,则将其从缓存中删除,然后将数据保存到mongo,为下一次提取做好准备。

onUpdate:  如果发生意外情况,它会定期执行某种循环以最大程度地减少数据丢失,从而将数据保存在缓存中。

我已经研究过Jedis,因为它本质上是一个巨大的哈希图,所以遍历所有条目并检查值将无益,特别是因为我想将其用作可伸缩选项。 / p>

0 个答案:

没有答案