用户背包
- 拉取列表接口
- 数量变更推送
旧
每次点击用户背包,都拉取列表,每次道具消耗,都删除道具列表缓存保证一致性。缺点,单个道具的变更,会影响到整个列表缓存的生命周期,在道具量比较大时很低效。
新
- 取消每次点击用户背包都拉取列表的操作。
- 进入游戏时,客户端调用一次拉取列表操作,并存放于map[用户道具全局唯一id]用户道具实体。
- 服务端,同时存放道具列表缓存key,和各个道具对应的缓存[key1,key2,key3,key4…keyn]
- 客户端每次变更道具,修改/删除对应该道具的服务端缓存keyn,并将变化推送给客户端,客户端map敏感变化。
也就是说,整个游戏周期里,只拉取一次列表。