有什么方法可以以最少的开销缓存基本上需要从不同实例不断访问的数据。
我目前正在使用 Mongo,但是每个玩家经常访问它会产生太多开销。问题在于派对,您可以在其中创建一小群玩家并在我们的服务中与他们联系。虽然服务是分片的(在多个实例中拆分),但我无法在本地缓存它们,因为它需要在另一个实例上再次访问(如果一个党员在一个实例上)。
我正在考虑以下方法之一,但我不知道要在哪种类型的数据库中进行搜索。
onJoin:如果没有从 mongo db 加载 pull,则存储在一些可以访问的缓存数据库中,例如 Mongo (Query.field("members." + uuid)),这样我就可以保持高效和有效。
onLeave:如果是最后一个成员,则将其从缓存中删除,并将数据保存到 mongo,为下一次拉取做好准备。
onUpdate:如果发生任何意外情况,它会定期通过某种循环将数据保存在缓存中,以最大程度地减少任何数据丢失。
我已经研究过 Jedis,因为它基本上是一个巨大的哈希图,循环遍历所有条目并检查值是没有好处的,特别是因为我想将它用作可扩展的选项。