首页 > 解决方案 > hazelcast中地图的限制数量

问题描述

我正在制作游戏并将使用 hazelcast 来保存玩家数据,我应该将每个玩家的数据保存为地图吗?因为如果我将玩家的数据保存为地图元素,那么每次像增加金币值这样的小变化,我都必须放入玩家的所有数据:例如:

playerData.gold = newValue;
players.replace(palyerID, playerData);

但是如果我将玩家数据制作为地图,那么我只会放新的金币值。前任:

playerA.replace("gold", newGoldValue)

但是我创建很多地图的事情并不好(如果我有超过100万玩家)。我可以创建任意数量的地图吗?如果没有,我可以创建多少张地图?

标签: hazelcasthazelcast-imap

解决方案


我刚刚在我们的社区频道中回答了同样的问题:

您可以使用 EntryProcessor 来读取或仅更新单个用于播放器数据的某些属性。我不知道您将拥有多少用户,但如果您有 100k 用户,例如,创建 100K 地图不会帮助您,但您可以在一张地图上拥有 100K 或数千万或更多记录。请检查: http: //docs.hazelcast.org/docs/3.10.4/manual/html-single/index.html#entry-processorhttps://github.com/hazelcast/hazelcast-code-samples/tree /master/分布式映射/入口处理器

另一方面,如果每个用户数据 > 5-10 MB 并且您需要经常访问所有这些数据,那么拆分它是一个好主意。

请注意,这些只是一般性建议。您需要测试不同的设置并为您的用例找到最合适且性能最好的设置。


推荐阅读